IOS 위 챗 인증 로그 인 기능 구현

위 챗 은 개발 과정 에서 자주 사용 되 는 플랫폼 이다.예 를 들 어 위 챗 로그 인,권한 수여,지불,공유 등 이다.오늘 우 리 는 어떻게 자신의 응용 프로그램 에 위 챗 권한 을 통합 하 는 지 보 자.
1.위 챗 권한 수여 의 정의
위 챗 OAuth 2.0 권한 수여 로그 인 은 위 챗 사용자 가 위 챗 신분 을 사용 하여 제3자 응용 프로그램 이나 사이트 에 안전하게 로그 인 하도록 합 니 다.위 챗 사용자 가 위 챗 OAuth 2.0 의 제3자 응용 프로그램 에 접속 하도록 권한 을 부여 한 후에 제3자 가 사용자 의 인터페이스 호출 증빙(accesstoken),access 를 통 해token 은 위 챗 오픈 플랫폼 권한 수여 관계 인터페이스 호출 을 할 수 있 고 위 챗 사용자 의 기본 적 인 개방 정 보 를 얻 고 사용자 가 기본 적 인 개방 기능 을 실현 하도록 도와 줄 수 있 습 니 다.
2.위 챗 권한 수여 절차
제3자 가 위 챗 권한 수여 로그 인 요 구 를 하면 위 챗 사용자 가 제3자 에 게 권한 을 부여 한 후에 위 챗 은 응용 을 끌 어 올 리 거나 제3자 사이트 로 재 설정 하고 권한 수여 임시 어음 코드 파 라미 터 를 가 져 옵 니 다.
code 매개 변 수 를 통 해 AppID 와 AppSecret 등 을 추가 하고 API 를 통 해 access 를 교환 합 니 다.token;
access 를 통 해token 은 인터페이스 호출 을 하여 사용자 의 기본 데이터 자원 을 가 져 오 거나 사용자 가 기본 적 인 조작 을 실현 하도록 도와 줍 니 다.
3.준비 작업
위 챗 권한 수여 로그 인 을 하기 전에 우 리 는 약간의 준비 작업 을 해 야 한다.
구체 적 으로 위 챗 개발 자 문 서 를 직접 보면 됩 니 다.주 소 는 다음 과 같 습 니 다.iOS 접속 안내
위 챗 개발 자 문서 에서 언급 한 몇 가 지 를 제외 하고 몇 가지 주의해 야 할 부분 이 있 습 니 다.
3.1 plist 파일 변경 은 다음 과 같 습 니 다.
image
앱 전송 보안 설정
iOS 9 에 새로 추 가 된 앱 트랜스 포트 시 큐 리 티(ATS)기능 은 주로 원래 요청 할 때 사용 하 던 HTTP 를 TLS 1.2 프로 토 콜 로 전송 하도록 한다.이 는 모든 HTTP 프로 토 콜 이 HTTPS 프로 토 콜 을 강제로 사용 해 전송 한 다 는 뜻 이기 도 하 다.Info.plist 에 ATS 를 제어 할 설정 을 추가 해 야 합 니 다.

<key>NSAppTransportSecurity</key>
<dict>
 <key>NSAllowsArbitraryLoads</key>
 <true/>
</dict>
이렇게 하면 HTTP 전송 을 허용 할 수 있다.
4.위 챗 권한 부여 첫 번 째 단계:코드 획득
우 리 는 인터페이스 에 단추 가 있다 고 가정 하고 사용자 가 이 단 추 를 누 르 면 위 챗 권한 수여 작업 을 시작 합 니 다.
그러면 코드 는 다음 과 같 습 니 다.

-(IBAction)sendAuthRequest
{ 
 //  SendAuthReq    
 SendAuthReq* req =[[[SendAuthReq alloc ] init ] autorelease ];
 req.scope = @"snsapi_userinfo" ;
 req.state = WXPacket_State ;//   OnResp                ,       OnResp       
 //            SendAuthReq    
 [WXApi sendReq:req]; 
}
4.1 매개 변수 설명
image
4.2 위 챗 권한 수여 페이지 당기 기
image
4.3 복귀 결과 설명
image
5.위 챗 권한 수여 두 번 째 단계:code 를 통 해 access 획득token,openid,unionid
첫 번 째 코드 를 가 져 온 후 아래 링크 를 요청 하여 access 를 가 져 옵 니 다.token,openid,unionid:
https://api.weixin.qq.com/sns/oauth2/access_token?
appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
이전 단 계 를 통 해 위 챗 권한 수여 페이지 를 끌 어 올 립 니 다.사용 자 는 로그 인 확인 을 클릭 하고 성공 하면 위 챗 에이전트 의 리 셋 함수 OnResp 함 수 를 호출 합 니 다.우 리 는 이 함수 에서 access 를 얻 을 수 있 습 니 다.token,openid,unionid
AppDelegate.m 파일 에서 구현 코드 는 다음 과 같 습 니 다.

//      
- (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 반환 설명:
image
5.2、새로 고침 accesstoken 유효기간
image
5.2.1 복귀 설명
image
6.위 챗 권한 수여 세 번 째 단계:accesstoken 개인 정보 획득
6.1 인터페이스 설명
이 인 터 페 이 스 는 사용자 의 개인 정 보 를 얻 는 데 사 용 됩 니 다.개발 자 는 OpenID 를 통 해 사용자 의 기본 정 보 를 얻 을 수 있 습 니 다.특히 주의해 야 할 것 은 개발 자가 여러 개의 모 바 일 애플 리 케 이 션,사이트 애플 리 케 이 션 과 공공 계 정 을 가지 고 있다 면 사용자 의 기본 정보 중의 유 니 온 id 를 얻어 사용자 의 유일 성 을 구분 할 수 있다 는 것 이다.같은 위 챗 오픈 플랫폼 계 정 에서 모 바 일 애플 리 케 이 션,사이트 가 사용 해 야 할 것 과 공공 계 정 이 라면 사용자 의 유 니 온 id 는 유일한 것 이기 때문이다.다시 말 하면 같은 사용자 가 같은 위 챗 오픈 플랫폼 에서 의 서로 다른 응용 에 대해 유 니 온 id 는 같다.사용자 가 위 챗 프로필 사진 을 수정 하면 오래된 위 챗 프로필 URL 이 효력 을 잃 기 때문에 개발 자 는 사용자 정 보 를 얻 은 후에 프로필 사진 을 저장 하여 위 챗 프로필 URL 이 효력 을 잃 은 후의 이상 상황 을 피해 야 합 니 다.
요청 인터페이스
http 요청 방식:GET
요청 주소:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
파라미터 와 반환 데이터 설명
image
위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 IOS 가 위 챗 권한 수여 로그 인 기능 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 여러분 에 게 답장 을 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기