実際、ここで話しているのはミニプログラムの認可メカニズムではなく、ログイン状態メカニズムです。 ミニプログラムにおける認可は、特定のインターフェースに対する認可です。 WeChat は、ミニ プログラム用の多くの API インターフェイスを正式にカプセル化しました。
wx.login() を呼び出すと、サーバーへのリクエストを開始してコードを取得できます。
公式アカウントでは、開発者がサーバー上にリンクを設定する必要があります。
クライアントがコードを取得した後、それをサーバーに送信する必要があります。WeChat は、クライアントがコードを WeChat に直接送信することを推奨しません。
サーバーがコードを受信すると、WeChat サーバーにアクセスするための appid とシークレットが送信され、WeChat サーバーは openid と session_key を返します。
その中には:
openid是用户标识。 session_key是解密用的。因为有的接口返回来的数据是加密的,比如当我们想获取unionid时。
開発者サーバーが WeChat から返された openid と session_key を取得すると、トークンとも呼ばれる 3rd_session (openid に関連付けられていることが望ましい) が生成されます。次に、この 3rd_session をクライアントに返し、キーとして 3rd_session、値として openid+session_key を使用してデータをサーバーのセッションに保存します。
この 3rd_session を受信した後、クライアントもストレージに書き込みます。
このように、ユーザーがミニプログラムに再入力した後、wx.checksession()を呼び出すことでログインステータスを検出できます。
さらに、この 3rd_session をクライアントに書き込むことで、インターフェースがより合理的になります。
一部のインターフェースはパブリックインターフェースであり、一部のインターフェースは権限制御が必要なためです。そして、この 3rd_session はユーザーの一意の識別子です。
関連する推奨事項:
ユーザーの詳細を取得するための WeChat アプレット認証のインスタンス
以上がWeChat ミニプログラム認証メカニズムの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。