laravel easywechat 网页授权
我使用的 overtrue/wechat 3.x版本
4.x版本请参照 这里
接下来开始网页授权吧!
1.安装包
composer require "overtrue/laravel-wechat:~3.0"
2.在config/app.php
providers里添加 Overtrue\LaravelWechat\ServiceProvider::class,
aliases里添加 'EasyWeChat' => Overtrue\LaravelWechat\Facade::class,
3.创建配置文件
php artisan vendor:publish --provider="Overtrue\LaravelWechat\ServiceProvider"
4. .env 文件添加如下配置,这些配置都和微信公众平台对应。也可在app/wechat.php里配置。
WECHAT_APPID=*
WECHAT_SECRET=*
WECHAT_TOKEN=*
WECHAT_AES_KEY=*
WECHAT_SECRET=*
WECHAT_TOKEN=*
WECHAT_AES_KEY=*
5.创建Wechat控制器。 给公众号验证token,并调用添加菜单接口。看一下菜单url。这个路由后面会提到,然后自行修改。
<?php
namespace App\Http\Controllers;
use Log;
class WechatController
extends Controller
{
/**
* 处理微信的请求消息
*
* @return
string
*/
public function
serve()
{
$wechat = app('wechat');
$wechat->server->setMessageHandler(function($message){
return "欢迎关注 overtrue!";
});
$this->add_menu();
return $wechat->server->serve();
}
public function
add_menu(){
$app = app('wechat');
$menu = $app->menu;
$buttons = [
[
"type"=>"view",
"name"=>"进入课堂",
"url"=>"http://vote.mrwangqi.com/user",
],
];
$menu->add($buttons);
}
}
6.添加一条路由访问该方法
7.添加中间件在 app/Http/Kernel.php
中添加路由中间件
protected $routeMiddleware = [
// ...
'wechat.oauth' => \Overtrue\LaravelWechat\Middleware\OAuthAuthenticate::class,
];
8.添加一条路由 /user ,这个就是刚才菜单的路由。
Route::get('/user',
function () {
$user = session('wechat.oauth_user');
// 拿到授权用户资料
return redirect()->to('/home#/index');
//這時候已經拿到用戶資料了,跳轉到想要的路由
});
所以/user路由只是个过渡,理论上不需要可以直接callback,但是我的不行额。大家可以给点意见。
9.配置公众号信息,我这里是测试号,配置的url里http://后面马赛克掉的是我的服务器域名。格式很严苛喲