[iOS]iOS集成移動認(rèn)證(一鍵授權(quán)登錄)

最近公司要求接入移動認(rèn)證SDK氏仗,實(shí)現(xiàn)手機(jī)號一鍵授權(quán)登錄功能赂乐,雖然官網(wǎng)也有demo丢烘,但我感覺官網(wǎng)demo比較復(fù)雜碍讨,在此自己寫個demo。如有侵權(quán)鸟顺,請聯(lián)系刪除次坡,謝謝疼约。

先上demo地址
官網(wǎng)地址

集成版本號:SDK5.7.1版本

注意事項(xiàng):

    1.  一鍵登錄服務(wù)必須打開蜂窩數(shù)據(jù)流量并且手機(jī)操作系統(tǒng)給予應(yīng)用蜂窩數(shù)據(jù)權(quán)限才能使用
    2.  取號請求過程需要消耗用戶少量數(shù)據(jù)流量(國外漫游時可能會產(chǎn)生額外的費(fèi)用)
    3.  一鍵登錄服務(wù)目前支持中國移動2/3/4G(2,3G因?yàn)闊o線網(wǎng)絡(luò)環(huán)境問題溺拱,時延和成功率會比4G低)和中國電信4G(如有更新會在技術(shù)溝通QQ群上通知)
    4.  (新增)建議全部SDK方法由主線程發(fā)起調(diào)用逃贝,因?yàn)镾DK的數(shù)據(jù)容器就是在主線程進(jìn)行讀寫操作的,如果外部發(fā)起調(diào)用SDK方法的線程不是主線程可能會導(dǎo)致多線程對數(shù)據(jù)容器讀寫導(dǎo)致崩潰
    5.  (新增)SDK不建議嵌套和并發(fā)調(diào)用盟迟,即在上一次請求未結(jié)束(未有回調(diào))馬上發(fā)起下一次請求時秋泳,第二次請求將不會有回調(diào)潦闲,成功率將無法得到保證攒菠。

接入流程:

1.申請appid和appkey,前往中國移動開發(fā)者社區(qū)(dev.10086.cn)歉闰,創(chuàng)建開發(fā)者賬號并申請appid和appkey辖众,并填寫應(yīng)用的包名(bundle ID)。
2.申請能力
應(yīng)用創(chuàng)建完成后和敬,在頁面左側(cè)選擇一鍵登錄能力凹炸,配置應(yīng)用服務(wù)器出口IP地址(注意IP地址不能隨意寫,否則會報錯)及驗(yàn)簽方式昼弟。

集成步驟:

1.  xcode版本需使用9.0以上啤它,否則會報錯
2.  導(dǎo)入認(rèn)證SDK的framework,直接將移動認(rèn)證TYRZSDK.framework拖到項(xiàng)目中
3.  在Xcode中找到TARGETS-->Build Setting-->Linking-->Other Linker Flags在這選項(xiàng)中需要添加-ObjC
4.  注意:如果以上操作仍然出現(xiàn)unrecognized selector sent to instance找不到方法的報錯,則添加更改為_all_load
5.  資源文件:在Xcode中務(wù)必導(dǎo)入TYRZResource.bundle到項(xiàng)目中,否則授權(quán)界面顯示異常(不顯示默認(rèn)圖片) TARGETS-->Build Phases-->Copy Bundle Resources-> 點(diǎn)擊 "+" --> Add Other --> TYRZSDK.frameWork --> TYRZResource.bundle -->Open
6.  導(dǎo)入sdk語句:#import <TYRZSDK/TYRZSDK.h>变骡,導(dǎo)入后才能調(diào)用SDK的方法
7.  在info.plist 文件中添加一個子項(xiàng)目App Transport Security Settings离赫,然后在其中添加一個key:Allow Arbitrary Loads,其值為YES塌碌。修改后其他運(yùn)營商才能使用一鍵登錄渊胸。

SDK使用
初始化SDK

//初始化SDK
[UASDKLogin.shareLogin registerAppId:appId AppKey:appKey];
//開啟日志打印
[UASDKLogin.shareLogin printConsoleEnable:YES];

獲取網(wǎng)絡(luò)類型

/*
 獲取網(wǎng)絡(luò)類型
 本方法用于獲取用戶當(dāng)前的網(wǎng)絡(luò)環(huán)境和運(yùn)營商(雙卡下,獲取上網(wǎng)卡的運(yùn)營商)
 */
-(NSDictionary *)getNetInfo{
    return [UASDKLogin.shareLogin networkInfo];
}

預(yù)取號

/*
 預(yù)取號
 本方法用于發(fā)起取號請求台妆,SDK完成網(wǎng)絡(luò)判斷翎猛、蜂窩數(shù)據(jù)網(wǎng)絡(luò)切換等操作并緩存憑證scrip。
 */
-(void)getPhoneNumber{
    [UASDKLogin.shareLogin getPhoneNumberCompletion:^(NSDictionary * _Nonnull sender) {
        NSString *resultCode = sender[@"resultCode"];
        NSMutableDictionary *result = [NSMutableDictionary dictionaryWithDictionary:sender];
        if ([resultCode isEqualToString:@"103000"]) {
            NSLog(@"預(yù)取號成功");
        } else {
            NSLog(@"預(yù)取號失敗");
        }
        NSLog(@"%@", result);
        [self showInfo:result];

    }];
}

拉起授權(quán)頁面

/*
 獲取token拉起授權(quán)頁面
 應(yīng)用調(diào)用本方法時接剩,SDK將拉起用戶授權(quán)頁面切厘,用戶確認(rèn)授權(quán)后,SDK將返回token給應(yīng)用客戶端搂漠∮芈可通過返回碼200087監(jiān)聽授權(quán)頁是否成功拉起。
 */
-(void)getAuthorization{
    
    UACustomModel * model = [[UACustomModel alloc] init];
    model.currentVC = self;
//    model.authPageBackgroundImage = [UIImage imageNamed:@"IMG_2924"];
    [UASDKLogin.shareLogin getAuthorizationWithModel:model complete:^(id  _Nonnull sender) {
        NSMutableDictionary *result = [NSMutableDictionary dictionaryWithDictionary:sender];
        NSLog(@"%@", result);
        NSString *resultCode = sender[@"resultCode"];

        if ([resultCode isEqualToString:@"200087"]) {
            NSLog(@"拉起授權(quán)頁面");
        }else if ([resultCode isEqualToString:@"103000"]) {
            NSLog(@"授權(quán)完畢");
            //一下兩種方法都可行
            //系統(tǒng)原方法
//            [self dismissViewControllerAnimated:YES completion:nil];
            //SDK提供的方法
            [UASDKLogin.shareLogin ua_dismissViewControllerAnimated:YES completion:nil];

        }else{
            [self showInfo:result];
        }
        
    }];
}

本機(jī)號碼校驗(yàn)

/*
 本機(jī)號碼校驗(yàn)
 開發(fā)者可以在應(yīng)用內(nèi)部任意頁面調(diào)用本方法桐汤,獲取本機(jī)號碼校驗(yàn)的接口調(diào)用憑證(token)
 */
-(void)mobileAuth{
    [UASDKLogin.shareLogin mobileAuthCompletion:^(NSDictionary * _Nonnull result) {
        NSLog(@"%@", result);
        NSString *resultCode = result[@"resultCode"];
        if ([resultCode isEqualToString:@"103000"]) {
            NSLog(@"校驗(yàn)成功");
        }else{
            NSLog(@"校驗(yàn)失敹恕:resultCode:%@",resultCode);
        }
        [self showInfo:result];
    }];
}

刪除臨時取號憑證

/*
 刪除臨時取號憑證
 本方法用于刪除取號方法getPhoneNumberCompletion成功后返回的取號憑證scrip
 */
-(BOOL)delectScrip{
    return  [UASDKLogin.shareLogin delectScrip];
}

自定義請求超時設(shè)置

/*
 自定義請求超時設(shè)置
 本方法用于設(shè)置取號、一鍵登錄怔毛、本機(jī)號碼校驗(yàn)請求的超時時間(默認(rèn)8000员萍,單位毫秒)
 */
- (void)setTimeoutInterval:(NSTimeInterval)timeout{
    [UASDKLogin.shareLogin setTimeoutInterval:timeout];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拣度,隨后出現(xiàn)的幾起案子碎绎,更是在濱河造成了極大的恐慌,老刑警劉巖抗果,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筋帖,死亡現(xiàn)場離奇詭異,居然都是意外死亡冤馏,警方通過查閱死者的電腦和手機(jī)日麸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逮光,“玉大人代箭,你說我怎么就攤上這事√楦眨” “怎么了嗡综?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長杜漠。 經(jīng)常有香客問我极景,道長察净,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任盼樟,我火速辦了婚禮塞绿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恤批。我一直安慰自己异吻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布喜庞。 她就那樣靜靜地躺著诀浪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪延都。 梳的紋絲不亂的頭發(fā)上雷猪,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音晰房,去河邊找鬼求摇。 笑死,一個胖子當(dāng)著我的面吹牛殊者,可吹牛的內(nèi)容都是我干的与境。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼猖吴,長吁一口氣:“原來是場噩夢啊……” “哼摔刁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起海蔽,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤共屈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后党窜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拗引,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年幌衣,在試婚紗的時候發(fā)現(xiàn)自己被綠了矾削。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡泼掠,死狀恐怖怔软,靈堂內(nèi)的尸體忽然破棺而出垦细,到底是詐尸還是另有隱情择镇,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布括改,位于F島的核電站腻豌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吝梅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一虱疏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苏携,春花似錦做瞪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纱扭,卻和暖如春牍帚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乳蛾。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工暗赶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肃叶。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓蹂随,卻偏偏與公主長得像,于是被迫代替她去往敵國和親因惭。 傳聞我的和親對象是個殘疾皇子糙及,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容