laravel前后端分离获取微信授权,结合laravel-wechat

栏目: PHP · 发布时间: 5年前

内容简介:3、点击同意之后,会根据你之前拼凑的回调路由返回code,如下:

1、开始之前,请一定仔细阅读 微信开发者文档

文档中,总共写了几个步骤:

注:
2、前端发起授权请求。这一步需要前端拼凑路由,并且将页面跳转到拼凑路由,路由规则如: https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的公众appId号&redirect_uri=你的回调路由&response_type=code&scope=你选择的方式&state=STATE#wechat_redirect

授权方式可选择为snsapi_userinfo或者snsapi_base,差别请看文档

跳转之后授权页面如下(开发者 工具 效果)

laravel前后端分离获取微信授权,结合laravel-wechat

3、点击同意之后,会根据你之前拼凑的回调路由返回code,如下:

http://test.***.com/index?code=021Azdiu12zdXd05kkju1ZYkiu1AzdiR&state=1

4、将路由中的code直接传递给后端,让后端做获取用户信息的系列的逻辑处理。

注: 如下是 laravel 中间件中处理方式,session只用于这次请求,也可以将用户的微信信息放在request中到controller进行逻辑处理,看个人喜好

public function handle($request, Closure $next, $scopes = null)
  {
         $wechatCacheKey = 'wechat.oauth_user.default';
            if (config("qa.mock_user") == 1){
                $user = new SocialiteUser(config('wechat.mock_user'));
            } else {
                $code = $request->get("code", "");
                if ($code === ""){
                    $appId = $this->config["app_id"];
                    return Response::toJson(["aid" => $appId], "请重新获取授权CODE!",10006);
                }
                // 开始拉取用户信息
                $app = Factory::officialAccount($this->config);
                $user = $app->oauth->user();
            }
            session([$wechatCacheKey => $user]);
        }
        return $next($request);
  }

注: 这个例子只是写了授权的逻辑,token相关验证我已经做了剔除

坑点:

1、vue的路由会将code拼接在url和#之间,如 www.****.com/?code=XXXXX/#/index ,这个code需要单独处理


以上所述就是小编给大家介绍的《laravel前后端分离获取微信授权,结合laravel-wechat》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Code Complete

Code Complete

Steve McConnell / Microsoft Press / 2004-6-19 / GBP 40.99

在线阅读本书 Widely considered one of the best practical guides to programming, Steve McConnells original CODE COMPLETE has been helping developers write better software for more than a decade. Now......一起来看看 《Code Complete》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器