1.开始前请仔细阅读微信开发者文档。总共写了几个步骤:1.通过appId和需要重定向的路由请求授权2.授权后跳转到路由中返回的代码。注意:前端只需要知道这两步即可。3、根据code4获取access_token。根据access_token获取用户信息(snsapi_userinfo授权)2、前端发起授权请求。这一步需要前端拼接路由,并将页面跳转到拼接路由,路由规则如下:https://open.weixin.qq.com/connect/oauth2/authorize?appid=yourpublicappIdnumber&redirect_uri=你的回调Routing&response_type=code&scope=你选择的方式&state=STATE#wechat_redirect注意授权方式可以是snsapi_userinfo或者snsapi_base。区别请参考文档中跳转后的授权页面如下(开发者工具效果)3、点击同意后,会根据你之前打补丁的回调路由返回代码,如下:http://test.***.com/index?code=021Azdiu12zdXd05kkju1ZYkiu1AzdiR&state=14,将route中的code直接传给后端,让后端做一系列获取用户信息的逻辑处理。注:以下是laravel中间件中的处理方式。该会话仅用于此请求。也可以将用户的微信信息放在request中给controller进行逻辑处理,看个人喜好。publicfunctionhandle($request,Closure$next,$scopes=null){$wechatCacheKey='wechat.oauth_user.default';if(config("qa.mock_user")==1){$user=newSocialiteUser(config('wechat.mock_user'));}else{$code=$request->get("code","");如果($code===""){$appId=$this->config["app_id"];returnResponse::toJson(["aid"=>$appId],"请重新获取授权码!",10006);}//开始拉取用户信息$app=Factory::officialAccount($this->config);$user=$app->oauth->user();}session([$wechatCacheKey=>$user]);}返回$next($request);}注:本例只是写授权的逻辑,token相关的验证我已经排除坑:1.vue的路由会在url和#之间拼接代码,比如www.****.com/?code=XXXXX/#/index,这段代码需要单独处理
