最近公司的同事業(yè)余時間搞了一個內(nèi)部的類about.me(https://about.me/)的網(wǎng)站Ocelots,想來是一個很洋氣的注意,以后跟客戶介紹公司的時候,直接登錄該網(wǎng)站,談到誰的時候,就打開該人的主頁,照片,經(jīng)驗,愛好等等什么的都一清二楚了。我就開始想,如果是這樣的一個工具,沒有移動端多遺憾,因為我們在任何時候,任何場合都有需求要給客戶展示一下團(tuán)隊成員。
搭建好項目框架之后,遇到的第一個需求就是統(tǒng)一認(rèn)證, Ocelots使用了Google Oauth2和Mozilla Persona作為網(wǎng)站入口。其認(rèn)證方式結(jié)構(gòu)如下(僅以Google Oauth2為例,Mozilla Persona 原理相同):
Google Oauth2為同樣提供了對iOS系統(tǒng)的支持,因此,在Ocelots_iOS客戶端上實現(xiàn)一個和Ocelots一模一樣的認(rèn)證機制,是非常輕松的,但是,難點在于如何統(tǒng)一二者的認(rèn)證機制?
通過研究Google Oauth2的認(rèn)證機制,我發(fā)現(xiàn)其認(rèn)證機制如下:
因此,我們可以通過如下的步驟統(tǒng)一Ocelots_iOS客戶端和Ocelots端的認(rèn)證機制,
1、為Ocelots_iOS注冊應(yīng)用ID、確保Ocelots_iOS和Ocelots應(yīng)用的授權(quán)范圍一致。
2、為Ocelots的用戶綁定一個authorize_token,通過該token可以獲取到該賬戶在系統(tǒng)中的所有信息。
3、按如下的方式實現(xiàn)Ocelots_iOS客戶端的認(rèn)證機制:
代碼如下:
使用Google Oauth2插件調(diào)用Google認(rèn)證界面:
得到認(rèn)證結(jié)果之后,從服務(wù)器端獲取Auth Token:
新聞熱點
疑難解答