關(guān)于Native App使用OAuth2的一些資料記錄

OAuth2.0說(shuō)明

OAuth的思路

OAuth在"客戶端"與"服務(wù)提供商"之間畴椰,設(shè)置了一個(gè)授權(quán)層(authorization layer)祖屏。"客戶端"不能直接登錄"服務(wù)提供商"掸绞,只能登錄授權(quán)層统扳,以此將用戶與客戶端區(qū)分開(kāi)來(lái)酝碳。"客戶端"登錄授權(quán)層所用的令牌(token),與用戶的密碼不同户辱。用戶可以在登錄的時(shí)候鸵钝,指定授權(quán)層令牌的權(quán)限范圍和有效期糙臼。
"客戶端"登錄授權(quán)層以后,"服務(wù)提供商"根據(jù)令牌的權(quán)限范圍和有效期蒋伦,向"客戶端"開(kāi)放用戶儲(chǔ)存的資料号胚。

授權(quán)方式

客戶端必須得到用戶的授權(quán)(authorization grant)触幼,才能獲得令牌(access token)。OAuth 2.0定義了四種授權(quán)方式徘公。

  • 授權(quán)碼模式(authorization code)
  • 簡(jiǎn)化模式(implicit)
  • 密碼模式(resource owner password credentials)
  • 客戶端模式(client credentials)

參考資料

  1. 理解OAuth 2.0末患, http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
  2. OAuth 2 Simplified, https://aaronparecki.com/oauth-2-simplified/

Native APP使用OAuth的方式

Native APP使用OAuth2.0最佳的方式是調(diào)用系統(tǒng)瀏覽器發(fā)送Authorization Request給授權(quán)服務(wù)器研叫,然后通過(guò)redirect URI調(diào)起Native APP來(lái)接受Authorization Response。根據(jù)具體平臺(tái)實(shí)現(xiàn)方式的不同璧针,授權(quán)服務(wù)器需要支持至少以下三種不同的redirect URI

  1. Private-Use URI Scheme Redirection.
    a. When choosing a URI scheme to associate with the app, apps MUST use a URI scheme based on a domain name under their control, expressed in reverse order
    b. redirect URI為APP自定義并注冊(cè)在OS中嚷炉,如com.example.app:/oauth2redirect/example-provider,瀏覽器打開(kāi)此URI會(huì)調(diào)起APP來(lái)處理此URI

  2. Claimed "https" Scheme URI Redirection. 部分OS支持探橱,瀏覽器遇見(jiàn)這類地址會(huì)打開(kāi)Native APP申屹,樣例:https://app.example.com/oauth2redirect/example-provider

  3. Loopback Interface Redirection. 主要是桌面OS支持,樣例:http://127.0.0.1:51004/oauth2redirect/example-provider

關(guān)于Android應(yīng)用跳轉(zhuǎn)

Google的官方文檔"Android Intents with Chrome"一文隧膏,介紹了在Android Chrome瀏覽器中網(wǎng)頁(yè)打開(kāi)APP的兩種方法哗讥,一種是用戶自定義的URI scheme(Custom URI scheme),另一種是“intent:”語(yǔ)法(Intent-based URI)胞枕。
第一種用戶自定義的URI scheme形式如下:


第二種的Intent-based URI的語(yǔ)法形式如下:

因?yàn)榈诙N形式大體是第一種形式的特例杆煞,所以很多文章又將第二種形式叫Intent Scheme URL,但是在Google的官方文檔并沒(méi)有這樣的說(shuō)法腐泻。

參考資料

  1. Recommendations for using OAuth 2.0 with native apps, https://oauth.net/2/native-apps/
  2. OAuth 2.0 for Native Apps, https://tools.ietf.org/html/rfc8252
    PS, native apps MUST NOT use embedded user-agents to perform authorization requests.
  3. PKCE (Proof Key for Code Exchange) https://oauth.net/2/pkce/
    PKCE (RFC 7636) is a technique to secure public clients that don't use a client secret.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末决乎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子派桩,更是在濱河造成了極大的恐慌构诚,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铆惑,死亡現(xiàn)場(chǎng)離奇詭異范嘱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)鸭津,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)彤侍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人逆趋,你說(shuō)我怎么就攤上這事盏阶。” “怎么了闻书?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵名斟,是天一觀的道長(zhǎng)脑慧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)砰盐,這世上最難降的妖魔是什么闷袒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮岩梳,結(jié)果婚禮上囊骤,老公的妹妹穿的比我還像新娘。我一直安慰自己冀值,他們只是感情好也物,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著列疗,像睡著了一般滑蚯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抵栈,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天告材,我揣著相機(jī)與錄音,去河邊找鬼古劲。 笑死斥赋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绢慢。 我是一名探鬼主播灿渴,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼胰舆!你這毒婦竟也來(lái)了骚露?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缚窿,失蹤者是張志新(化名)和其女友劉穎棘幸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體倦零,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡误续,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扫茅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹋嵌。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖葫隙,靈堂內(nèi)的尸體忽然破棺而出栽烂,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布腺办,位于F島的核電站焰手,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏怀喉。R本人自食惡果不足惜书妻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望躬拢。 院中可真熱鬧躲履,春花似錦、人聲如沸估灿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)馅袁。三九已至,卻和暖如春荒辕,著一層夾襖步出監(jiān)牢的瞬間汗销,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工抵窒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弛针,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓李皇,卻偏偏與公主長(zhǎng)得像削茁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掉房,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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