Laravel5.8+esayWechat5.0公众号OAuth中间件验证

公众号的基本搭建请见我的上一篇文章:
《Laravel5.8+esayWechat5.0实现公众号开发》

1.在app/Http/Kernel.php中添加路由中间件

protected $routeMiddleware = [
    // ...
    'wechat.oauth' => \Overtrue\LaravelWeChat\Middleware\OAuthAuthenticate::class,
];

在路由中设置中间件,且能直接通过session获取用户数据

Route::group(['middleware' => ['web', 'wechat.oauth:default,snsapi_userinfo']], function () {
    oute::get('/user', function (){
        $user = session('wechat.oauth_user.default'); // 拿到授权用户资料
        dd($user);
    });
});

中间件支持指定配置名称,easywechat.oauth:default

wechat.oauth:default

也可以指定当前的scopes:

wechat.oauth:default,snsapi_userinfo

在config/wechat.app中,对official_account下的default中oauth取消注释

 'official_account' => [
        'default' => [
            'app_id'  => env('WECHAT_OFFICIAL_ACCOUNT_APPID', 'your-app-id'),         // AppID
            'secret'  => env('WECHAT_OFFICIAL_ACCOUNT_SECRET', 'your-app-secret'),    // AppSecret
            'token'   => env('WECHAT_OFFICIAL_ACCOUNT_TOKEN', 'your-token'),           // Token
            'aes_key' => env('WECHAT_OFFICIAL_ACCOUNT_AES_KEY', ''),                 // EncodingAESKey

            /*
             * OAuth 配置
             *
             * scopes:公众平台(snsapi_userinfo / snsapi_base),开放平台:snsapi_login
             * callback:OAuth授权完成后的回调页地址(如果使用中间件,则随便填写。。。)
             * enforce_https:是否强制使用 HTTPS 跳转
             */
             'oauth'   => [
                 'scopes'        => array_map('trim', explode(',', env('WECHAT_OFFICIAL_ACCOUNT_OAUTH_SCOPES', 'snsapi_userinfo'))),
                 'callback'      => env('WECHAT_OFFICIAL_ACCOUNT_OAUTH_CALLBACK', '/examples/oauth_callback.php'),
                 'enforce_https' => false,
             ],
        ],
    ],

注意:enforce_https一定要设置为false,不然微信的回调地址一直会带上https进行回调报错。
在公众号平台配置项中设置一下回调地址
在这里插入图片描述
在这里插入图片描述

在以上路由/user中微信访问时是需要授权的,在这条路由的回调或控制器方法里,就可以直接从session(‘wechat.oauth_user.default’)拿到授权用户信息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值