功能概述
掃碼登錄能力,指的是開發者可在移動應用內使用此能力,拉取二維碼,用戶使用微信客戶端掃描二維碼后可以登錄此移動應用。此能力可被應用在多設備登錄、智能硬件、電視盒子等場景。
scanlogin.gif
iOS掃碼授權獲得Code流程
步驟一:請求函數
#import <WechatAuthSDK.h>
/*! @brief 發送登錄請求,等待WechatAuthAPIDelegate回調
*
* @param appId 微信開發者ID
* @param nonceStr 一個隨機的盡量不重復的字符串,用來使得每次的signature不同
* @param timeStamp 時間戳
* @param scope 應用授權作用域,擁有多個作用域用逗號(,)分隔
* @param signature 簽名
* @param schemeData 會在掃碼后拼在scheme后
* @return 成功返回YES,失敗返回NO
注:該實現只保證同時只有一個Auth在運行,Auth未完成或未Stop再次調用Auth接口時會返回NO。
*/
- (BOOL)Auth:(NSString *)appId
nonceStr:(NSString *)nonceStr
timeStamp:(NSString*)timeStamp
scope:(NSString *)scope
signature:(NSString *)signature
schemeData:(NSString *)schemeData;
步驟二:監聽二維碼回調,回調的時候顯示二維碼
- (void)onAuthGotQrcode:(UIImage *)image; //得到二維碼
步驟三:用戶確認登錄之后回調authCode
- (void)onAuthFinish:(int)errCode AuthCode:(NSString *)authCode; //成功登錄
步驟四:使用authCode獲取 access_token
,unionid
,openid
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
參數說明.
參數 | 是否必須 | 說明 |
---|---|---|
appid | 是 | 應用唯一標識,在微信開放平臺提交應用審核通過后獲得 |
secret | 是 | 應用密鑰AppSecret,在微信開放平臺提交應用審核通過后獲得 |
code | 是 | 填寫第三步獲取的authCode參數 |
grant_type | 是 | 填authorization_code |
返回說明
正確的返回:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",
"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"
}