WeChat Web ページの認証
WeChat Webページの認証
ユーザーが WeChat クライアントでサードパーティの Web ページにアクセスすると、公式アカウントは WeChat Web ページの承認メカニズムを通じてユーザーの基本情報を取得し、ビジネス ロジックを実装できます。
Webページ認証コールバックドメイン名に関する手順
1. WeChat公式アカウントがユーザーのWebページ認証をリクエストする前に、開発者は「開発-インターフェース権限-Webページサービス-Webページアカウント-Webページ認証の取得」に進む必要があります。パブリックプラットフォームの公式Webサイトの「基本ユーザー情報」の構成オプションで、認可コールバックドメイン名を変更します。ここには URL ではなくドメイン名 (文字列) が入力されるため、http:// などのプロトコル ヘッダーを追加しないでください。2 認証コールバック ドメイン名の構成仕様は完全なドメインです。 Web ページの認証が必要なドメイン名など、www.qq.com になります。設定後のページは http://www.qq.com/music.html および http://www.qq.com です。このドメイン名の /login.html は OAuth2.0 で認証できます。ただし、http://pay.qq.com、http://music.qq.com、http://qq.com は OAuth2.0 認証を実行できません
3. 公式アカウントのログインが第三者に許可されている場合開発者が管理するには、何も設定する必要はなく、公式アカウントをサードパーティに置き換えて Web ページの認証を実装させるだけです
Webページ認可の2つのスコープの違いの説明
1. snsapi_baseをスコープとして開始されたWebページ認可は、ページに入るユーザーのopenidを取得するために使用され、サイレントに認可され、自動的にジャンプします。コールバック ページに移動します。ユーザーは、コールバック ページ (多くの場合、ビジネス ページ) に直接アクセスすると認識します。
2. スコープとして snsapi_userinfo で開始される Web ページの承認は、ユーザーの基本情報を取得するために使用されます。ただし、この種の認可はユーザーが手動で同意する必要があり、ユーザーは同意しているため特に注意する必要はなく、認可後にユーザーの基本情報を取得できます。
3. ユーザー管理インターフェースの「ユーザー基本情報取得インターフェース」は、ユーザーが公式アカウントと対話するか、メッセージに従ってイベントをプッシュした場合にのみ、ユーザーのOpenIDに基づいてユーザーの基本情報を取得できます。他の WeChat インターフェイスを含むこのインターフェイスでは、正常に呼び出す前にユーザー (つまり、openid) が公式アカウントをフォローする必要があります。
Webページ認証access_tokenと通常のaccess_tokenの違いについて
1. WeChat Webページ認証は、ユーザーが公式アカウントを認証した後、Webページ用の固有のインターフェース呼び出しを取得できます。認証情報 (Web ページ認証 access_token)、Web ページ認証 access_token を通じて、基本的なユーザー情報の取得など、認証後のインターフェイス呼び出しを行うことができます。
2. 他の WeChat インターフェースの場合は、基本サポートの「Get access_token」インターフェースを通じて通常の access_token 呼び出しを取得する必要があります。
UnionID メカニズムについて
1. 基本的なユーザー情報を取得するための Web ページの承認も UnionID メカニズムに従っていることに注意してください。つまり、開発者が複数の公式アカウント間、または公式アカウントとモバイル アプリケーション間でユーザー アカウントを統合する必要がある場合、事前に WeChat オープン プラットフォーム (open.weixin.qq.com) にアクセスして公式アカウントをバインドする必要があります。上記のニーズを満たすために UnionID メカニズムを使用します。
2. UnionID メカニズムの役割の説明: 開発者が複数のモバイル アプリケーション、Web サイト アプリケーション、パブリック アカウントを持っている場合、同じユーザーであるため、ユーザーの基本情報から UnionID を取得することでユーザーの一意性を区別できます。同じ WeChat に対してオープンである プラットフォーム上の異なるアプリケーション (モバイル アプリケーション、Web サイト アプリケーション、およびパブリック アカウント) は同じ UnionID を持ちます。
特別なシナリオでのサイレント認証について
1. スコープとして snsapi_base を使用した Web ページの認証は、サイレントに認証され、ユーザーは気づかれません
2. account の場合、ユーザーが公式アカウントのセッションまたはカスタム メニューから公式アカウントの Web 認証ページに入ると、スコープが snsapi_userinfo であっても、認証はサイレントで行われ、ユーザーは認識しません。
具体的には、Web ページの認証プロセスは 4 つのステップに分かれています:
1. ユーザーを認証ページに誘導して認証に同意し、コードを取得します
2. コードを Web ページ認証の access_token (access_token とは異なります) に交換します。基本サポートでは)
3. 必要に応じて、開発者は Web ページ認証 access_token を更新して有効期限を回避できます
4. Web ページ認証 access_token および openid を通じてユーザーの基本情報を取得します (UnionID メカニズムをサポートします)
ステップ 1 : ユーザーは、コードを認可して取得することに同意します
WeChat パブリック アカウントが認可スコープ (スコープ パラメーター) の権限を持っていることを確認するという前提の下で (サービス アカウントが高度なインターフェイスを取得した後、サービス アカウントは、デフォルトではスコープパラメータ)、フォロワーに次のページを開くようにガイドします:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 「リンクにアクセスできません」というメッセージが表示される場合は、パラメーターが次のとおりであるかどうかを確認してください。スコープパラメータに対応する認可スコープ権限を持っていること。
特記事項: 承認操作のセキュリティレベルが高いため、承認リクエストを開始する際、WeChat は承認リンクに対して定期的に強力な一致チェックを実行します。リンクのパラメーターの順序が間違っている場合、認証ページは通常アクセスできなくなります
参考リンク (このリンクを WeChat クライアントで開いて体験してください) スコープは snsapi_base https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https %3A%2F%2Fchong.qq .com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdap
ter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_bas
e&state=123# wechat_redirectスコープは snsapi_userinfo https://open .weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Fauth_response.php&response_type=
code&scope=snsapi_userinfo&state=STATE#wecha t_リダイレクト
特別な注意: ジャンプ コールバック redirect_uri は、認証コードのセキュリティを確保するために https リンクを使用する必要があります。
パラメータの説明
パラメータ | は必須ですか? | 説明 |
---|---|---|
appid | は | 公式アカウントの一意の識別子です |
redirect_uri | はコールバックリンクリダイレクトです | 認証後のアドレスを入力してくださいurlencode ペアを使用します リンクは処理されます |
response_type | は | 戻り値の型です。コードを入力してください |
スコープ | は | アプリケーション認証スコープ、snsapi_base (認証ページはポップアップしません、直接ジャンプします。ユーザーの openid のみが取得できます)、snsapi_userinfo (認証ページがポップアップし、openid を通じてニックネーム、性別、場所を取得できます。また、ユーザーが注意していなくても、ユーザーが許可していれば情報を取得できます) |
state | いいえ | stateパラメータはリダイレクト後に含まれ、開発者が記入することができますa-zA-Z0 パラメーター値 -9、最大 128 バイト |
#wechat_redirect | は | 直接開かれるか、ページ 302 リダイレクトを行うときに、このパラメーターを保持する必要があります |
下の図は、スコープが snsapi_userinfo と等しい場合の認可ページを示しています。
ユーザーが認可に同意した後
ユーザーが認可に同意すると、ページは redirect_uri/?code にジャンプします。 =コード&状態=状態。
コードの説明: コードは、access_token と引き換えにチケットとして使用されます。各ユーザー認証で使用されるコードは異なります。コードは 1 回のみ使用でき、5 分間使用されないと自動的に期限切れになります。
ステップ 2: コードを通じてウェブページの認可 access_token を交換する
まず第一に、ここでコードを通じて交換されるのは特別なウェブページの認可 access_token であり、基本サポートの access_token とは異なることに注意してください (この access_token が使用されます)他のインターフェイスを呼び出すため)。公式アカウントは、以下のインターフェースを通じて Web ページの認可 access_token を取得できます。 Web ページ認可のスコープが snsapi_base の場合、このステップでは Web ページ認可の access_token を取得すると同時に、openid も取得し、ここで snsapi_base 形式の Web ページ認可プロセスが終了します。
特別な注意: 公式アカウントのシークレットと取得された access_token は非常に高いセキュリティ レベルを持つため、サーバー上にのみ保存する必要があり、クライアントに渡すことは許可されません。 access_token の更新や access_token を介したユーザー情報の取得などの後続のステップもサーバーから開始する必要があります。
リクエスト方法
コードを取得したら、次のリンクをリクエストして access_token を取得します: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
パラメータの説明
パラメータ | は必須ですか? | 説明 |
---|---|---|
appid | は | 公式アカウントの一意の識別子です |
secret | はい | 公式のアプリの秘密account |
code | Yes | 最初のステップで取得したcodeパラメータを入力します |
grant_type | Yes | authorization_codeを入力します |
返却手順
正しい場合に返される JSON データ パケットは次のとおりです:
{ "access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid ": "OPENID",
"scope":"SCOPE" }