shareSDK 集成第三方登錄


一.注冊ShareSDK帳號並創建一個APP

ShareSDK官網:http://www.mob.com/#/


官網.png

創建一個APP.png


得到App Key,App Secret(后面的代碼整合中會用到)


獲取AppKey,AppSecret.png

二.從微信開放平台獲取AppID,AppSecret

參考博文:
http://www.jianshu.com/p/839dc30f2250
http://www.jianshu.com/p/c9b688fdb961


Paste_Image.png

三.下載SDK

下載地址:
http://www.mob.com/#/downloadDetail/ShareSDK/ios


SDK下載.png

SDK配置.png

SDK下載完成后,得到如下的文件目錄結構


SDK文件目錄.png

四.代碼整合

1.導入SDK

導入SDK.png
2.設置支持HTTP請求

支持HTTP請求.png


參考博文:http://www.jianshu.com/p/5935dff47e4f

3.設置sheme白名單

設置Scheme白名單.png


參考博文:http://www.jianshu.com/p/f974f4cbba18

4.關閉bitcode

禁用bitcode1.png

禁用bitcode2.png
5.設置URL

設置URL.png
6.設置Build phases

設置Build Phases.png
7.核心代碼
[ShareSDK getUserInfo:SSDKPlatformTypeWechat onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) { if (state == SSDKResponseStateSuccess) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"已獲取授權" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; NSLog(@"uid=%@" ,user.uid); NSLog(@"%@" ,user.credential); NSLog(@"token=%@" ,user.credential.token); NSLog(@"nickname=%@" ,user.nickname); } else { NSLog(@"%@",error); } }];

效果圖


Paste_Image.png

源碼:
https://github.com/andli0626/wx_authlogin_by_sharesdk.git

五.項目實戰

主要分2種情況:

第一種:APP有注冊,登錄功能

APP本身有一套自己的用戶系統,微信登錄只是一種登錄方式,那么就需要實現原有用戶與微信用戶的綁定


第一種情況.png
補充說明:
要數據,不要功能
如果你的應用擁有用戶系統,就是說你的應用自己就有注冊和登錄功能,使用第三方登錄只是為了擁有更多用戶,那么你可以依照下面的步驟來做:
1、用戶觸發第三方登錄事件 2、showUser(null)請求授權用戶的資料(這個過程中可能涉及授權操作) 3、如果onComplete()方法被回調,將其參數Hashmap代入你應用的Login流程 4、否則提示錯誤,調用removeAccount()方法,刪除可能的授權緩存數據 5、Login時客戶端發送用戶資料中的用戶ID給服務端 6、服務端判定用戶是已注冊用戶,則引導用戶進入系統,否則返回特定錯誤碼 7、客戶端收到“未注冊用戶”錯誤碼以后,代入用戶資料到你應用的Register流程 8、Register時在用戶資料中挑選你應用的注冊所需字段,並提交服務端注冊 9、服務端完成用戶注冊,成功則反饋客戶端引導用戶進入系統 10、否則提示錯誤,調用removeAccount()方法,刪除可能的授權緩存數據

參考示例:比如簡書,網易雲音樂的帳號綁定實現過程,都是值得借鑒的

第二種:APP無注冊功能

APP本身沒有自己的用戶系統,微信登錄是唯一的入口,只要授權通過,就可以進入APP


第二種情況.png
補充說明:
要功能,不要數據
如果你的應用不具備用戶系統,而且也不打算維護這個系統,那么你可以依照下面的步驟來做:
1、用戶觸發第三方登錄事件 2、調用platform.getDb().getUserId()請求用戶在此平台上的ID 3、如果用戶ID存在,則認為用戶是合法用戶,允許進入系統;否則調用authorize() 4、authorize()方法將引導用戶在授權頁面輸入帳號密碼,然后目標平台將驗證此用戶 5、如果onComplete()方法被回調,表示授權成功,引導用戶進入系統 6、否則提示錯誤,調用removeAccount()方法,刪除可能的授權緩存數據

建議

對於iOS應用,考慮到iOS應用商店審核指南中的相關規定,建議開發者接入微信登錄時,先檢測用戶手機是否已安裝微信客戶端,對未安裝的用戶隱藏微信登錄按鈕,只提供其他登錄方式(比如手機號注冊登錄、游客登錄等)

參考資料

ShareSDK 第三方登錄 官方文檔
http://wiki.mob.com/%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E5%BD%95/#h1-0
微信開放平台 登錄授權整合 官方說明文檔
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=&lang=zh_CN



 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM