功能概述
掃碼登錄能力,指的是開發(fā)者可在移動(dòng)應(yīng)用內(nèi)使用此能力,拉取二維碼鲸鹦,用戶使用微信客戶端掃描二維碼后可以登錄此移動(dòng)應(yīng)用。此能力可被應(yīng)用在多設(shè)備登錄跷跪、智能硬件馋嗜、電視盒子等場(chǎng)景。
iOS掃碼授權(quán)獲得Code流程
步驟一:請(qǐng)求函數(shù)
#import <WechatAuthSDK.h>
/*! @brief 發(fā)送登錄請(qǐng)求吵瞻,等待WechatAuthAPIDelegate回調(diào)
*
* @param appId 微信開發(fā)者ID
* @param nonceStr 一個(gè)隨機(jī)的盡量不重復(fù)的字符串葛菇,用來使得每次的signature不同
* @param timeStamp 時(shí)間戳
* @param scope 應(yīng)用授權(quán)作用域,擁有多個(gè)作用域用逗號(hào)(,)分隔
* @param signature 簽名
* @param schemeData 會(huì)在掃碼后拼在scheme后
* @return 成功返回YES橡羞,失敗返回NO
注:該實(shí)現(xiàn)只保證同時(shí)只有一個(gè)Auth在運(yùn)行眯停,Auth未完成或未Stop再次調(diào)用Auth接口時(shí)會(huì)返回NO。
*/
- (BOOL)Auth:(NSString *)appId
nonceStr:(NSString *)nonceStr
timeStamp:(NSString*)timeStamp
scope:(NSString *)scope
signature:(NSString *)signature
schemeData:(NSString *)schemeData;
步驟二:監(jiān)聽二維碼回調(diào)卿泽,回調(diào)的時(shí)候顯示二維碼
- (void)onAuthGotQrcode:(UIImage *)image; //得到二維碼
步驟三:用戶確認(rèn)登錄之后回調(diào)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
參數(shù)說明.
參數(shù) | 是否必須 | 說明 |
---|---|---|
appid | 是 | 應(yīng)用唯一標(biāo)識(shí)莺债,在微信開放平臺(tái)提交應(yīng)用審核通過后獲得 |
secret | 是 | 應(yīng)用密鑰AppSecret,在微信開放平臺(tái)提交應(yīng)用審核通過后獲得 |
code | 是 | 填寫第三步獲取的authCode參數(shù) |
grant_type | 是 | 填authorization_code |
返回說明
正確的返回:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",
"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"
}