ホームページ WeChat アプレット ミニプログラム開発 WeChat ミニプログラム開発用のログインプロセスの作成手順

WeChat ミニプログラム開発用のログインプロセスの作成手順

Apr 02, 2017 pm 03:49 PM

WeChat にログインしたことのある人は誰でも、ユーザーの ID を記録するために識別子が必要であることを知っています。WeChat では、unionId が記録する必要があるため、unionId を取得する方法がキーになります。プログラムとバックグラウンドの PHP コードに関しては、小さなものに分割されます。

ミニ プログラム コードから始めます

ミニ プログラムの js コード ログイン プロセスについて簡単に説明します

ログイン -> コードを取得 ->getUserInfo iv と encryptedData を取得 -> 独自のサーバーに渡します->アプレットの結果に戻る

var API_URL = "自己的服务器地址";
Page({
 onLoad: function () {
 console.log("iv");
 wx.login({//login流程
 success: function (res) {//登录成功
 if (res.code) {
 var code = res.code;
 wx.getUserInfo({//getUserInfo流程
 success: function (res2) {//获取userinfo成功
 console.log(res2);
 var encryptedData = encodeURIComponent(res2.encryptedData);//一定要把加密串转成URI编码
  var iv = res2.iv;
  //请求自己的服务器
  Login(code,encryptedData,iv);
 }
 })
 
 } else {
 console.log('获取用户登录态失败!' + res.errMsg)
 }
 }
});
}
})
ログイン後にコピー

code: sessionKeyを取得するためにサーバーによって使用される必要なパラメータ。

IV: 暗号化アルゴリズムの初期ベクトル、encryptedData: 暗号化された string

コード iv encryptedData をサーバーに渡します

function Login(code,encryptedData,iv){ console.log('code='+code+'&encryptedData='+encryptedData+'&iv='+iv);
 //创建一个dialog
  wx.showToast({
  title: '正在登录...',
  icon: 'loading',
  duration: 10000
  });
  //请求服务器
  wx.request({
  url: API_URL,
  data: {
  code:code,
  encryptedData:encryptedData,
  iv:iv
  },
  method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
  header: {
  'content-type': 'application/json'
  }, // 设置请求的 header
  success: function (res) {
  // success
  wx.hideToast();
  console.log('服务器返回'+res.data);
 
  },
  fail: function () {
  // fail
  // wx.hideToast();
  },
  complete: function () {
  // complete
  }
  })
 }
ログイン後にコピー

ドキュメントを見ると、必要な UnionId が encryptedData に含まれていることがわかるはずです。そのため、サーバーは UnionId を解析するためにこの情報を必要とします。

サーバー処理ロジック

まず、WeChat 復号化デモをダウンロードします

ここで選択した PHP コードは、デモを除く 3 つの class ファイルを独自のプロジェクトに配置し、後で呼び出すことです。

サーバーの処理フローの説明は次のとおりです:

WeChat の インターフェース を通じて seesionKey を取得し、次に sessionKey と iv を使用して encryptedData データを復号化し、UnionID を取得します。

/**
 * 登录
 *
 * @return Response
 */
 public function weixinlogin( $user_id=null )
 {
  global $App_Error_Conf,$Gift_Ids,$Server_Http_Path,$Is_Local,$Test_User,$Good_Vcode,$WeiXin_Xd_Conf;
  $validator_result = input_validator(array('code','iv','encryptedData'));
  if(!empty($validator_result)){
   return response($validator_result);
  }
  $js_code = $_REQUEST['code'];
  $encryptedData = $_REQUEST['encryptedData'];
  $iv = $_REQUEST['iv'];
  $appid = $WeiXin_Xd_Conf['appid'];
  $secret = $WeiXin_Xd_Conf['secret'];
  $grant_type = $WeiXin_Xd_Conf['grant_type'];
  //从微信获取session_key
  $user_info_url = $WeiXin_Xd_Conf['code2session_url'];
  $user_info_url = sprintf("%s?appid=%s&secret=%s&js_code=%s&grant_type=%",$user_info_url,$appid,$secret,$js_code,$grant_type);
  $weixin_user_data = json_decode(get_url($user_info_url));
  $session_key = $weixin_user_data->session_key;
//解密数据
$data = '';
$wxBizDataCrypt = new WXBizDataCrypt($appid, $session_key);
$errCode=$wxBizDataCrypt>decryptData($appid,$session_key,$encryptedData, $iv, $data );
ログイン後にコピー

最後に取得したデータは、復号化した encryptedData であり、unionId が含まれます。

以上がWeChat ミニプログラム開発用のログインプロセスの作成手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)