日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

五一期間在flomo官網的擴展中心看到了這個Raycast to flomo,對mac上的效率工具有了點了解,我直接基本都沒有用過Mac自帶的spotlight。。。

由Raycast to flomo了解到OAuth 2.0之PKCE

 

我好奇的不是竟然可以用這種方式發送到flomo,畢竟官網API擺在那,調一下也很簡單,我驚奇的是Raycast跟Mac系統的風格比較搭配,看上去不錯,就去Raycast的官網看了一下。

緣起

看了下Raycast的API文檔,妥妥的對前端開發及其友好啊,大贊!

文檔擼了一遍之后,我看到自己感興趣的Auth部分。

由Raycast to flomo了解到OAuth 2.0之PKCE

 

用官網的demo試了試twitter的oauth pkce登錄流程,很順暢,瞬間有了一種想給道招網也安排上,雖然本站基本只有我一個人會登錄,很多年前我就把注冊功能給禁用了,這次準備開放了。

自己順便了解了一下PKCE流程

由Raycast to flomo了解到OAuth 2.0之PKCE

 

上圖來自auth0.com

原來PKCE是為了優化現在流行的SPA應用token驗證流程的。

OAuth2.0

先回顧下OAuth2.0流程:

由Raycast to flomo了解到OAuth 2.0之PKCE

 

在獲取token的時候需要提供如下信息:

  1. code
  2. redirect_url
  3. client_id, client secret

第二項和第三項其實是用來對通過code獲取token的client的合法性進行驗證。其中最核心的應該是client secret。通過它可以解決如下問題:

對獲取token的client進行合法性驗證。secret是在Authorization Server上注冊client的時候設置的,只有client自己知道,因此可以對client進行驗證。

這樣的話,即使code因為某種原因泄露了,沒有secret也無法獲取到token。從而提升了安全性。在傳統的Web應用中,token的獲取是發生在后端,因此secret也是保存在后端。這樣是可行的。但是對于現在比較流行的SPA應用,token的獲取是發生在瀏覽器端,是一個公開的環境。這個方法就不可行了,因為secret不可能保存在一個公開的環境中。

PKCE

PKCE主要是通過在授權的過程中增加了code_challenge和code_verifier兩個元素來對整個流程進行驗證,防止code被第三方截取的情況。具體流程如下:

由Raycast to flomo了解到OAuth 2.0之PKCE

 

這里面最核心的其實就是在authorize請求中增加了code_challenge參數,在token請求中增加了code_verifier參數。這兩個參數最終都是依賴于一個client生成的隨機字符串。

  • codeverifier:一個Client端生成的隨機字符串(由字母,數字,- ,. , ,~ 組成)
  • code_challenge:由code_verifier生成的字符串。 生成算法為:BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))。

過程解析:

  1. 在申請授權時(authorize請求),client將code_challenge傳給authorization server.(這個過程中code_verifier在網絡中不會被暴露,因為對其進行了hash)。
  2. authorization server生成授權碼后,會將code_challenge保存起來,并與授權碼關聯。
  3. 在通過授權碼獲取token的過程中,client會將code_verifier傳給authorization server
  4. authorization server會將code_verifier按照第一步相同算法計算得到新的code_challenge
  5. authorization server將第四步計算得來的code_challenge與第一步中的原始code_challenge進行比較,如果相同則認為申請授權的源與用code獲取token的源為同一來源。(即code沒有被第三方截取而冒用)

客戶端一般用oide-provider來對接PKCE。

參考文章

  • Authorization Code Flow with Proof Key for Code Exchange (PKCE)
  • 基于Identity Server4的OAuth 2.0授權總結(4)- PKCE in Authorization Code mode

分享到:
標簽:OAuth
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定