Heim  >  Artikel  >  WeChat-Applet  >  IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

高洛峰
高洛峰Original
2017-03-27 14:19:352831Durchsuche

WeChat ist eine Plattform, die häufig in der Entwicklung verwendet wird, z. B. für die WeChat-Anmeldung, Autorisierung, Zahlung und Freigabe. Heute werfen wir einen Blick darauf, wie Sie die WeChat-Autorisierung in Ihre eigene Anwendung integrieren können.

Die Definition der WeChat-Autorisierung

Mit der autorisierten WeChat OAuth2.0-Anmeldung können WeChat-Benutzer WeChat-Identitäten verwenden, um sich sicher bei Anwendungen oder Websites von Drittanbietern anzumelden. Nachdem WeChat-Benutzer die Anmeldung bei Anwendungen von Drittanbietern autorisiert haben, die Zugriff auf WeChat OAuth2.0 haben, Dritte können die Anmeldeinformationen für die Schnittstelle des Benutzers abrufen (access_token). Über access_token kann die Schnittstelle für die Autorisierungsbeziehung der offenen WeChat-Plattform aufgerufen werden, um die grundlegenden offenen Informationen von WeChat-Benutzern abzurufen und Benutzern bei der Implementierung grundlegender offener Funktionen zu helfen.

2. Schritte zur WeChat-Autorisierung

Ein Dritter initiiert eine WeChat-Autorisierungs-Anmeldeanfrage. Nachdem der WeChat-Benutzer die Autorisierung des Dritten zugelassen hat. Bei der Party-Anwendung startet WeChat die Anwendung oder leitet sie auf eine Website eines Drittanbieters weiter und bringt den temporären Ticketcode-Parameter für die Autorisierung mit.

Fügen Sie AppID und AppSecret über den Code-Parameter hinzu und tauschen Sie ihn über die API gegen access_token aus.

Schnittstelle über access_token Rufen Sie auf, um die grundlegenden Datenressourcen des Benutzers abzurufen oder dem Benutzer bei der Implementierung grundlegender Vorgänge zu helfen.

3. Vorbereitungsarbeiten

Wir müssen einige Vorbereitungsarbeiten durchführen, bevor wir die WeChat-Anmeldung autorisieren.

Für spezifische Informationen schauen Sie sich einfach die WeChat-Entwicklerdokumentation an. Die Adresse lautet wie folgt: iOS Access Guide

Zusätzlich zu den in der WeChat-Entwicklerdokumentation genannten Punkten gibt es noch einige andere Dinge, die Aufmerksamkeit erfordern.

3.1. Ändern Sie die Plist-Datei wie folgt

IOS implementiert den Beispielcode für die autorisierte WeChat-AnmeldefunktionApp-Transportsicherheitseinstellung

Neuer App-Transport in iOS9 Die Sicherheitsfunktion (kurz ATS) bewirkt hauptsächlich, dass das in der ursprünglichen Anfrage verwendete HTTP zur Übertragung an das TLS1.2-Protokoll übergeben wird. Dies bedeutet auch, dass alle HTTP-Protokolle gezwungen sind, das HTTPS-Protokoll zur Übertragung zu verwenden. Sie müssen eine Konfiguration zur Steuerung von ATS in Info.plist hinzufügen:


Dies ermöglicht die HTTP-Übertragung
<key>NSAppTransportSecurity</key>
<dict>
 <key>NSAllowsArbitraryLoads</key>
 <true/>
</dict>

4 . Der erste Schritt der WeChat-Autorisierung: Holen Sie sich den CodeWenn der Benutzer auf die Schaltfläche klickt, wird der WeChat-Autorisierungsvorgang eingeleitet.

Dann lautet der Code wie folgt:


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

IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

4.2. Rufen Sie die WeChat-Autorisierungsseite auf

IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

4.3 Ergebnisbeschreibung zurückgeben

IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

Schritt 2 der WeChat-Autorisierung: Access_token, openid, unionid über Code abrufen Nachdem Sie den Code des ersten Schritts erhalten haben, fordern Sie den folgenden Link an, um access_token, openid, unionid zu erhalten:


https://api.weixin.qq.com/sns /oauth2/access_token?

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

Starten Sie die WeChat-Autorisierungsseite über den vorherigen Schritt und der Benutzer klickt, um die Anmeldung zu bestätigen. Nach Erfolg erfolgt der Rückruf Die Funktion „OnResp“ im WeChat-Agenten wird aufgerufen: „access_token, openid, unionid“ in dieser Funktion

Der Implementierungscode in der AppDelegate.m-Datei lautet wie folgt:


//微信代理方法
- (void)onResp:(BaseResp *)resp
{
  SendAuthResp *aresp = (SendAuthResp *)resp;
  if(aresp.errCode== 0 && [aresp.state isEqualToString:WXPacket_State])
  {
   NSString *code = aresp.code;
   [self getWeiXinOpenId:code];
  }
}
//通过code获取access_token,openid,unionid
- (void)getWeiXinOpenId:(NSString *)code{
 NSString *url =[NSString stringWithFormat:@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%@&secret=%@&code=%@&grant_type=authorization_code",AppId,AppSerect,code];
 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  NSURL *zoneUrl = [NSURL URLWithString:url];
  NSString *zoneStr = [NSString stringWithContentsOfURL:zoneUrl encoding:NSUTF8StringEncoding error:nil];
  NSData *data = [zoneStr dataUsingEncoding:NSUTF8StringEncoding];
  dispatch_async(dispatch_get_main_queue(), ^{
   if (data){
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    NSString *openID = dic[@"openid"];
    NSString *unionid = dic[@"unionid"];
   }
  });
 });
}
5.1 Rückgabeanweisungen:

IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

5.2. Gültigkeitsdauer des access_token aktualisieren

IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

5.2.1. Rückgabeanweisungen

IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

6. Schritt 3 der WeChat-Autorisierung: Erhalten Sie persönliche Informationen über access_token

6.1. Schnittstellenbeschreibung

Diese Schnittstelle wird verwendet, um Benutzerdaten zu erhalten Information . Entwickler können grundlegende Benutzerinformationen über OpenID erhalten. Es ist besonders wichtig zu beachten, dass, wenn ein Entwickler über mehrere mobile Anwendungen, Website-Anwendungen und öffentliche Konten verfügt, der Benutzer durch den Erhalt der Unionid in den Basisinformationen des Benutzers eindeutig unterschieden werden kann, denn solange es sich um mobile Anwendungen handelt, die unter demselben WeChat geöffnet sind Plattformkonto, Website-Anwendungen und öffentliche Konten, die Unionid des Benutzers ist eindeutig. Mit anderen Worten: Für denselben Benutzer ist die Unionid für verschiedene Anwendungen unter derselben offenen WeChat-Plattform gleich. Bitte beachten Sie, dass nach dem Ändern des WeChat-Avatars durch den Benutzer die alte WeChat-Avatar-URL ungültig wird. Daher sollten Entwickler das Avatar-Bild nach Erhalt der Benutzerinformationen speichern, um ungewöhnliche Situationen zu vermeiden, nachdem die WeChat-Avatar-URL ungültig geworden ist.

Anfrageschnittstelle

http-Anfragemethode: GET

Anfrageadresse: https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

Parameter- und Rückgabedatenbeschreibung

IOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion

Das obige ist der detaillierte Inhalt vonIOS implementiert den Beispielcode für die autorisierte WeChat-Anmeldefunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn