Laravel前後端分離による微信ライセンスの取得laravel-wechat


1、始める前に、微信開発者のドキュメントをよく読んでください.全部でいくつかのステップが書かれています.
  • 1、appIdおよびホップを必要とするルーティングを介して、認証
  • を要求する.
  • 2、許可された後にジャンプルーティングで戻るcode のフロントエンドは、この2つのステップ
  • を知る必要がある.
  • 3、codeからaccessを取得するtoken
  • 4、access_によるtoken取得ユーザ情報(snsapi_userinfoライセンス)
  • 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、違いはドキュメントを参照してください
    ジャンプ後のライセンスページは次のとおりです(開発者ツール効果)
    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のルーティングはurlと#の間にcodeを接続します.www.****.com/?code=XXXXX/#/index、このcodeは単独で処理する必要があります