使用MonkeyKing進(jìn)行第三方授權(quán)登錄二

關(guān)于MonkeyKing的介紹和使用MonkeyKing進(jìn)行第三方分享可以參考我的上一篇文章箩张。使用MonkeyKing進(jìn)行第三方分享
github地址:https://github.com/nixzhu/MonkeyKing

以微信授權(quán)為例,基本步驟如下
1阿逃、和上一篇配置一樣卧波,設(shè)置第三方賬號的信息时肿,包括appId和appKey,其中appKey是可選了港粱,MonkeyKing提供了使用appId獲取授權(quán)的方式
2嗜侮、appdelegate中處理授權(quán)之后的回調(diào),授權(quán)成功之后啥容,會重新打開發(fā)起授權(quán)的app锈颗,并且微信返回一個url,類型下面的的URL咪惠,獲取到url參數(shù)中的code之后击吱,MonkeyKing重新發(fā)起請求,獲取到用戶的授權(quán)信息遥昧,使用回調(diào)返回給客戶端

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        if MonkeyKing.handleOpenURL(url) {
            return true
        }
        return false
    }

wx4868b35061f87885://oauth?code=003pYdaH1Pxrg606pJ8H1u3W9H1pYda6&state=Weixinauth

3覆醇、發(fā)起授權(quán)請求并且處理回調(diào)獲取的授權(quán)信息

 MonkeyKing.oauth(for: .weChat) { [weak self] (dictionary, response, error) in
            print("error \(String(describing: error))")
        }

拿到的授權(quán)信息主要包含如下:

openid
unionid
refresh_token
scope
access_token,
expires_in

做到這里朵纷,需要注意openid與unionid的區(qū)別,在不同的app中永脓,客戶端授權(quán)獲取的openid是不同的袍辞,但是unionid是唯一的,因此對于同一家公司的多個應(yīng)用常摧,如果要共用用戶微信賬戶體系搅吁,需要使用unionid,在做facebook登錄的時候授權(quán)得不到用戶的unionid落午,但是通過二次獲取信息谎懦,可以得到用戶的bussinesscode,這個相當(dāng)于微信的unionid
MonkeyKing的demo中還提供了授權(quán)后獲取用戶基本信息的網(wǎng)絡(luò)處理溃斋,這一步可以放在服務(wù)端去做界拦,將第一步得到的授權(quán)信息發(fā)送給后臺,然后后臺返回用戶的信息也是可以的梗劫。

fileprivate func fetchUserInfo(_ oauthInfo: [String: Any]?) {
        guard
            let token = oauthInfo?["access_token"] as? String,
            let openID = oauthInfo?["openid"] as? String,
            let refreshToken = oauthInfo?["refresh_token"] as? String,
            let expiresIn = oauthInfo?["expires_in"] as? Int else {
                return
        }
        let userInfoAPI = "https://api.weixin.qq.com/sns/userinfo"
        let parameters = [
            "openid": openID,
            "access_token": token
        ]
        // fetch UserInfo by userInfoAPI
        SimpleNetworking.sharedInstance.request(userInfoAPI, method: .get, parameters: parameters, completionHandler: { (userInfo, _, _) in
            guard var userInfo = userInfo else {
                return
            }
            userInfo["access_token"] = token
            userInfo["openid"] = openID
            userInfo["refresh_token"] = refreshToken
            userInfo["expires_in"] = expiresIn
            print("userInfo \(userInfo)")
        })
        // More API
        // http://mp.weixin.qq.com/wiki/home/index.html
    }

拿到的用戶信息中有如下享甸,注意unionid、access_token等信息需要手動拼接到userInfo中

city梳侨、headimgurl枪萄、unionid、privilege猫妙、
openid瓷翻、nickname、language割坠、province齐帚、sex、country
            // 然后從上面的拼接中拿到了四個信息access_token彼哼、openid(這個信息重復(fù)了)对妄、refresh_token、expires_in
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敢朱,一起剝皮案震驚了整個濱河市剪菱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拴签,老刑警劉巖孝常,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蚓哩,居然都是意外死亡构灸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門岸梨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喜颁,“玉大人稠氮,你說我怎么就攤上這事“肟” “怎么了隔披?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長寂拆。 經(jīng)常有香客問我奢米,道長,這世上最難降的妖魔是什么漓库? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮园蝠,結(jié)果婚禮上渺蒿,老公的妹妹穿的比我還像新娘。我一直安慰自己彪薛,他們只是感情好茂装,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著善延,像睡著了一般少态。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上易遣,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天彼妻,我揣著相機與錄音,去河邊找鬼豆茫。 笑死侨歉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的揩魂。 我是一名探鬼主播幽邓,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼火脉!你這毒婦竟也來了牵舵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤倦挂,失蹤者是張志新(化名)和其女友劉穎畸颅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體方援,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡重斑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肯骇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窥浪。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡祖很,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漾脂,到底是詐尸還是另有隱情假颇,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布骨稿,位于F島的核電站笨鸡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏坦冠。R本人自食惡果不足惜形耗,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辙浑。 院中可真熱鬧激涤,春花似錦、人聲如沸判呕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侠草。三九已至辱挥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間边涕,已是汗流浹背晤碘。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留功蜓,地道東北人哼蛆。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像霞赫,于是被迫代替她去往敵國和親腮介。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

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