ShareSDK官網:http://www.mob.com/#/ios
獲得App Key,App Secret(後面的代碼整合中會用到)git
參考博文:
http://www.jianshu.com/p/839dc30f2250
http://www.jianshu.com/p/c9b688fdb961github
下載地址:
http://www.mob.com/#/downloadDetail/ShareSDK/ios緩存
SDK下載完成後,獲得以下的文件目錄結構微信
參考博文:http://www.jianshu.com/p/5935dff47e4fui
參考博文:http://www.jianshu.com/p/f974f4cbba18spa
[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); } }];
效果圖3d
源碼:
https://github.com/andli0626/wx_authlogin_by_sharesdk.gitcode
主要分2種狀況:orm
APP自己有一套本身的用戶系統,微信登陸只是一種登陸方式,那麼就須要實現原有用戶與微信用戶的綁定
補充說明:
要數據,不要功能
若是你的應用擁有用戶系統,就是說你的應用本身就有註冊和登陸功能,使用第三方登陸只是爲了擁有更多用戶,那麼你能夠依照下面的步驟來作:
一、用戶觸發第三方登陸事件 二、showUser(null)請求受權用戶的資料(這個過程當中可能涉及受權操做) 三、若是onComplete()方法被回調,將其參數Hashmap代入你應用的Login流程 四、不然提示錯誤,調用removeAccount()方法,刪除可能的受權緩存數據 五、Login時客戶端發送用戶資料中的用戶ID給服務端 六、服務端斷定用戶是已註冊用戶,則引導用戶進入系統,不然返回特定錯誤碼 七、客戶端收到「未註冊用戶」錯誤碼之後,代入用戶資料到你應用的Register流程 八、Register時在用戶資料中挑選你應用的註冊所需字段,並提交服務端註冊 九、服務端完成用戶註冊,成功則反饋客戶端引導用戶進入系統 十、不然提示錯誤,調用removeAccount()方法,刪除可能的受權緩存數據
參考示例:好比簡書,網易雲音樂的賬號綁定實現過程,都是值得借鑑的
APP自己沒有本身的用戶系統,微信登陸是惟一的入口,只要受權經過,就能夠進入APP
補充說明:
要功能,不要數據
若是你的應用不具有用戶系統,並且也不打算維護這個系統,那麼你能夠依照下面的步驟來作:
一、用戶觸發第三方登陸事件 二、調用platform.getDb().getUserId()請求用戶在此平臺上的ID 三、若是用戶ID存在,則認爲用戶是合法用戶,容許進入系統;不然調用authorize() 四、authorize()方法將引導用戶在受權頁面輸入賬號密碼,而後目標平臺將驗證此用戶 五、若是onComplete()方法被回調,表示受權成功,引導用戶進入系統 六、不然提示錯誤,調用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