Laravel前後端分離による微信ライセンスの取得laravel-wechat
2029 ワード
1、始める前に、微信開発者のドキュメントをよく読んでください.全部でいくつかのステップが書かれています.1、appIdおよびホップを必要とするルーティングを介して、認証 を要求する.2、許可された後にジャンプルーティングで戻るcode を知る必要がある.3、codeからaccessを取得するtoken 4、access_によるtoken取得ユーザ情報(snsapi_userinfoライセンス) 2、フロントエンドは授権要求を開始する.このステップでは、フロントエンドのパッチワークルーティングが必要であり、ページをパッチワークルーティングにジャンプします.ルーティングルールは次のとおりです.
ジャンプ後のライセンスページは次のとおりです(開発者ツール効果)
3、同意をクリックすると、前にまとめたコールバックルートに基づいてcodeに戻ります.以下のようにします.
4、ルーティング中のcodeを直接バックエンドに渡し、バックエンドにユーザー情報を取得するシリーズの論理処理をさせる.
ピットポイント:
1、vueのルーティングはurlと#の間にcodeを接続します.
:
のフロントエンドは、この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は単独で処理する必要があります