公式の WeChat ミニ プログラムには、非常に詳細なログイン シーケンス図が示されています。もちろん、セキュリティ上の理由から、署名の暗号化を追加する必要があります。
WeChat アプレット
login: function(e) { var that = this; wx.login({ success: function(res){ var code = res.code; //获取code wx.getUserInfo({ //得到rawData, signatrue, encryptData success: function(data){ var rawData = data.rawData; var signature = data.signature; var encryptedData = data.encryptedData; var iv = data.iv; wx.request({ url: '你自己的后台地址', data: { "code" : code, "rawData" : rawData, "signature" : signature, 'iv' : iv, 'encryptedData': encryptedData }, method: 'GET', success: function(info){ console.log(info); } }) } }) }, }) }
wx.login
を呼び出してコードを取得します。wx.login
获取 code 。调用
wx.getUserInfo
-
wx.getUserInfo
を呼び出して、署名に必要な rawData、signatrue、および encryptData を取得します。
- ThinkPHP バックエンド
//开发者使用登陆凭证 code 获取 session_key 和 openid $APPID = ''; $AppSecret = ''; $code = I('get.code'); $url="https://api.weixin.qq.com/sns/jscode2session?appid=".$APPID."&secret=".$AppSecret."&js_code=".$code."&grant_type=authorization_code"; $arr = vget($url); // 一个使用curl实现的get方法请求 $arr = json_decode($arr,true); $openid = $arr['openid']; $session_key = $arr['session_key']; // 数据签名校验 $signature = I('get.signature'); $signature2 = sha1($_GET['rawData'].$session_key); //记住不应该用TP中的I方法,会过滤掉必要的数据 if ($signature != $signature2) { echo '数据签名验证失败!';die; } //开发者如需要获取敏感数据,需要对接口返回的加密数据( encryptedData )进行对称解密 Vendor("PHP.wxBizDataCrypt"); //加载解密文件,在官方有下载 $encryptedData = $_GET['encryptedData']; $iv = $_GET['iv']; $pc = new \WXBizDataCrypt($APPID, $session_key); $errCode = $pc->decryptData($encryptedData, $iv, $data); //其中$data包含用户的所有数据 if ($errCode != 0) { echo '解密数据失败!';die; } //生成第三方3rd_session $session3rd = null; $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; $max = strlen($strPol)-1; for($i=0;$i<16;$i++){ $session3rd .=$strPol[rand(0,$max)]; } echo $session3rd;
- ログイン資格情報コードに基づいて session_key と openid を取得します。
- データ署名の検証。
- データの復号化。
🎜🎜curl🎜
public function vget($url){ $info=curl_init(); curl_setopt($info,CURLOPT_RETURNTRANSFER,true); curl_setopt($info,CURLOPT_HEADER,0); curl_setopt($info,CURLOPT_NOBODY,0); curl_setopt($info,CURLOPT_SSL_VERIFYPEER, false); curl_setopt($info,CURLOPT_SSL_VERIFYHOST, false); curl_setopt($info,CURLOPT_URL,$url); $output= curl_exec($info); curl_close($info); return $output; }によって実装されたgetメソッドリクエストメソッド
以上がWeChat ログインのバックエンドとして ThinkPHP を使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
3週間前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最高のグラフィック設定
3週間前By尊渡假赌尊渡假赌尊渡假赌
アサシンのクリードシャドウズ:シーシェルリドルソリューション
2週間前ByDDD
R.E.P.O.誰も聞こえない場合はオーディオを修正する方法
3週間前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:Myriseのすべてのロックを解除する方法
4週間前By尊渡假赌尊渡假赌尊渡假赌

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
