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=*

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.添加一条路由访问该方法

Route::any('/wechat', '[email protected]');

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://后面马赛克掉的是我的服务器域名。格式很严苛喲

laravel easywechat 网页授权