ホームページ  >  記事  >  WeChat アプレット  >  IOSがWeChat認証ログイン機能を実装したサンプルコード

IOSがWeChat認証ログイン機能を実装したサンプルコード

高洛峰
高洛峰オリジナル
2017-03-27 14:19:352779ブラウズ

WeChat は、WeChat のログイン、承認、支払い、共有など、開発でよく使用されるプラットフォームです。今日は、WeChat 認証を独自のアプリケーションに統合する方法を見ていきます。必要な友人はそれを参照してください

1 WeChat OAuth2.0 認証ログインにより、WeChat ユーザーは以下のことが可能になります。 WeChat ID を使用して安全にログインします。サードパーティのアプリケーションまたは Web サイトの場合、WeChat ユーザーが WeChat OAuth2.0 にアクセスしたサードパーティ アプリケーションへのログインを承認すると、サードパーティはユーザーのインターフェイス呼び出し資格情報 (access_token) を取得できます。 )、access_token を使用して WeChat オープン プラットフォーム認証関係インターフェイスを呼び出します。これにより、WeChat ユーザーの基本的なオープン情報を取得し、ユーザーが基本的なオープン機能を実現できるようになります。

2. WeChat 認証の手順

WeChat ユーザーがサードパーティ アプリケーションの認証を許可すると、WeChat はアプリケーションを起動するか、サードパーティの Web サイトにリダイレクトします。 code パラメータを介して AppID と AppSecret を追加し、API を介して access_token を呼び出して、ユーザーの基本的なデータ リソースを取得するか、ユーザーが基本的な操作を実装できるようにします。 。

3. 準備

WeChat へのログインを認証する前に、いくつかの準備をする必要があります。 詳細については、WeChat 開発者ドキュメントを参照してください。アドレスは次のとおりです: iOS アクセス ガイドWeChat 開発者ドキュメントで説明されている点に加えて、注意が必要な箇所がいくつかあります

3.1。 plist ファイルは次のとおりです

アプリ トランスポート セキュリティ設定

iOS9 の新しいアプリ トランスポート セキュリティ (ATS) 機能により、主に、元のリクエストで使用された HTTP が送信のために TLS1.2 プロトコルに転送されます。これは、すべての HTTP プロトコルが送信に HTTPS プロトコルを使用することを強制されることも意味します。 Info.plist に ATS を制御するための設定を追加する必要があります:

IOSがWeChat認証ログイン機能を実装したサンプルコード

<key>NSAppTransportSecurity</key>
<dict>
 <key>NSAllowsArbitraryLoads</key>
 <true/>
</dict>

これにより、HTTP 送信を許可できます


4. WeChat 認証の最初のステップ: コードを取得します

インターフェイスにはボタンがあります。ユーザーがボタンをクリックすると、WeChat 認証操作が開始されます。 コードは次のとおりです:

4.1. パラメータの説明


4.2. WeChat認証ページを表示します

IOSがWeChat認証ログイン機能を実装したサンプルコード

4. 結果を返すdescription

IOSがWeChat認証ログイン機能を実装したサンプルコード

5. WeChat 認証の 2 番目のステップ: コードを通じて access_token、openid、unionid を取得します

最初のステップのコードを取得した後、次のリンクをリクエストして access_token、openid を取得します。 、unionid:

IOSがWeChat認証ログイン機能を実装したサンプルコードhttps://api.weixin.qq.com/sns/oauth2/access_token?

appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

前の手順で WeChat 認証ページを表示し、ユーザーがログインを確認するためにクリックすると、WeChat エージェントが呼び出されます。コールバック関数 OnResp 関数で、この関数で access_token、openid、unionid を取得できます AppDelegate.m ファイルの実装コードは次のとおりです:


-(IBAction)sendAuthRequest
{ 
 //构造SendAuthReq结构体 
 SendAuthReq* req =[[[SendAuthReq alloc ] init ] autorelease ];
 req.scope = @"snsapi_userinfo" ;
 req.state = WXPacket_State ;//用于在OnResp中判断是哪个应用向微信发起的授权,这里填写的会在OnResp里面被微信返回
 //第三方向微信终端发送一个SendAuthReq消息结构
 [WXApi sendReq:req]; 
}

5.1 返却手順:


5.2. access_token の有効期間を更新します

IOSがWeChat認証ログイン機能を実装したサンプルコード

5.2.1. 返品手順

IOSがWeChat認証ログイン機能を実装したサンプルコード

6. WeChat認証ステップ3: access_tokenを介して個人情報を取得する

このインターフェースは次の目的で使用されますユーザーの個人情報を取得します。開発者は、OpenID を通じて基本的なユーザー情報を取得できます。特に重要なのは、開発者が複数のモバイル アプリケーション、Web サイト アプリケーション、パブリック アカウントを持っている場合、同じ WeChat 内のモバイル アプリケーションである限り、ユーザーの基本情報の UnionID を取得することでユーザーを一意に区別できることです。オープン プラットフォーム アカウント、Web サイト アプリケーション、パブリック アカウントでは、ユーザーの UnionID は一意です。言い換えれば、同じユーザーの場合、同じ WeChat オープン プラットフォーム上の異なるアプリケーションの UnionID は同じです。ユーザーが WeChat アバターを変更すると、古い WeChat アバター URL が無効になることに注意してください。そのため、開発者は、WeChat アバター URL が無効になった後の異常事態を避けるために、ユーザー情報を取得した後、アバター画像を保存する必要があります。

リクエストインターフェイス

httpリクエストメソッド: GET

リクエストアドレス: https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

パラメータと戻りデータの説明


以上がIOSがWeChat認証ログイン機能を実装したサンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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