<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      OAuth2.0登錄的四種方式

      OAuth登錄的四種方式

      1. 授權碼

      授權碼(authorization code)方式,指的是第三方應用先申請一個授權碼,然后再用該碼獲取令牌。

      這種方式是最常用的流程,安全性也最高,它適用于那些有后端的 Web 應用。授權碼通過前端傳送,令牌則是儲存在后端,而且所有與資源服務器的通信都在后端完成。這樣的前后端分離,可以避免令牌泄漏。

      例如,有一個網站A(高德地圖),需要向網站B(微博)授權登錄

      1705567996465.png

      第一步,拿到授權碼

      A 網站(高德)提供一個鏈接,用戶點擊后就會跳轉到 B(微博) 網站,授權用戶數據給 A(高德) 網站使用。下面就是 A (高德)網站跳轉 B (微博)網站的一個示意鏈接。

      https://api.weibo.com/oauth2/authorize?
      client_id=884965267
      &redirect_uri=https%3A%2F%2Fid.amap.com%2Findex%2Fweibo%3Fpassport%3D1
      

      client_id客戶端id,redirect_uri跳轉鏈接

      第二步,在用戶跳轉后,B 網站會要求用戶登錄,然后詢問是否同意給予 A(高德) 網站授權。用戶表示同意,這時 B (微博)網站就會跳回redirect_uri參數指定的網址。

      1705568068369.png

      跳轉時,會傳回一個授權碼,就像下面這樣。

      https%3A%2F%2Fid.amap.com%2Findex%2Fweibo%3Fpassport%3D1?
      code=******
      

      第三步,A (高德)網站拿到授權碼以后,就可以在后端,向 B (微博)網站請求令牌。

      https://api.weibo.com/oauth2/token?
       client_id=CLIENT_ID&
       client_secret=CLIENT_SECRET&
       grant_type=authorization_code&
       code=AUTHORIZATION_CODE&
       redirect_uri=CALLBACK_URL
      

      上面的url中,client_id參數和client_secret參數用來讓 B(微博) 確認 A(高德) 的身份(client_secret參數是保密的,因此只能在后端發請求),grant_type參數的值是AUTHORIZATION_CODE,表示采用的授權方式是授權碼,code參數是上一步拿到的授權碼,redirect_uri參數是令牌頒發后的回調網址。

      第四步,B(微博) 網站收到請求以后,就會頒發令牌。具體做法是向redirect_uri指定的網址,發送一段 JSON 數據。

      例如:

      
          {    
            "access_token":"ACCESS_TOKEN",
            "token_type":"bearer",
            "expires_in":2592000,
            "refresh_token":"REFRESH_TOKEN",
            "scope":"read",
            "uid":100101,
            "info":{...}
          }
      
      

      access_token就是我們所需要的令牌,這個信息在A(高德)網站的后端得到,即可進行用戶的登錄認證

      因此,這種方式的登錄模式圖為:1705568104946.png

      這種登錄一般應用于前后端分離登錄,安全性非常的高,使用也是最廣泛的一種

      2. 隱藏式

      有些 Web 應用是純前端應用,沒有后端。這時就不能用上面的方式了,必須將令牌儲存在前端。RFC 6749 就規定了第二種方式,允許直接向前端頒發令牌。這種方式沒有授權碼這個中間步驟,所以稱為(授權碼)"隱藏式"(implicit)。

      第一步:A 網站提供一個鏈接,要求用戶跳轉到 B 網站,授權用戶數據給 A 網站使用。

      https://b.com/oauth/authorize?
        response_type=token&
        client_id=CLIENT_ID&
        redirect_uri=CALLBACK_URL&
        scope=read
      

      上面 URL 中,response_type參數為token,表示要求直接返回令牌。

      第二步:用戶跳轉到 B 網站,登錄后同意給予 A 網站授權。這時,B 網站就會跳回redirect_uri參數指定的跳轉網址,并且把令牌作為 URL 參數,傳給 A 網站。

      https://a.com/callback#token=ACCESS_TOKEN
      

      上面 URL 中,token參數就是令牌,A 網站因此直接在前端拿到令牌。

      1705568127815.png

      這種方式的相對于上一種方式,更加簡單,但是也更加不安全,所有的代碼和登錄都寫在前端頁面中,容易被他人破解,所以一般用于安全性不高的地方。

      3. 密碼式

      如果你高度信任某個應用,RFC 6749 也允許用戶把用戶名和密碼,直接告訴該應用。該應用就使用你的密碼,申請令牌,這種方式稱為"密碼式"(password)。

      第一步,A 網站要求用戶提供 B 網站的用戶名和密碼。拿到以后,A 就直接向 B 請求令牌。(后端調用該接口)

      https://oauth.b.com/token?
        grant_type=password&
        username=USERNAME&
        password=PASSWORD&
        client_id=CLIENT_ID
      

      上面 URL 中,grant_type參數是授權方式,這里的password表示"密碼式",usernamepassword是 B 的用戶名和密碼。

      第二步,B 網站驗證身份通過后,直接給出令牌。注意,這時不需要跳轉,而是把令牌放在 JSON 數據里面,作為 HTTP 回應,A 因此拿到令牌。

      這種方式風險很大,需要直接提供賬號密碼,所以只適用于其他授權方式都無法采用的情況,而且必須是用戶高度信任的應用。

      4. 憑證式

      最后一種方式是憑證式(client credentials),適用于沒有前端的命令行應用,即在命令行下請求令牌。

      第一步,A 應用在命令行向 B 發出請求。

      https://oauth.b.com/token?
        grant_type=client_credentials&
        client_id=CLIENT_ID&
        client_secret=CLIENT_SECRET
      

      上面 URL 中,grant_type參數等于client_credentials表示采用憑證式,client_idclient_secret用來讓 B 確認 A 的身份。

      第二步,B 網站驗證通過以后,直接返回令牌。

      這種方式給出的令牌,是針對第三方應用的,而不是針對用戶的,即有可能多個用戶共享同一個令牌。

      這種認證場景通常用于調用第三方接口,例如調用阿里云的短信接口等等

      文章參考OAuth 2.0 的四種方式

      posted @ 2024-07-09 17:48  booleandev  閱讀(100)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 一区二区三区四区亚洲自拍| 粉嫩一区二区三区国产精品| 久久精品国产99久久无毒不卡| 亚洲av午夜成人片| 国产午夜福利一区二区三区 | 欧美日韩中文字幕视频不卡一二区| 精品无码一区二区三区电影| 欧美激情一区二区三区成人| 草裙社区精品视频播放| 婷婷六月色| 国产一区二区三区精品综合| 国产精品亚洲一区二区三区喷水| 亚洲欧美高清在线精品一区二区 | 日韩亚洲国产激情一区二区| 国产性三级高清在线观看 | 无码伊人久久大杳蕉中文无码| 欧美性群另类交| 熟妇的奶头又大又长奶水视频 | 国产精品久久久久久无毒不卡| 泽普县| 8050午夜二级无码中文字幕| 国产网友愉拍精品视频手机| 成人无码www在线看免费| 欧美黑人巨大xxxxx| 国产一区二区不卡在线| 国产永久免费高清在线| 116美女极品a级毛片| 久久伊99综合婷婷久久伊| 99RE8这里有精品热视频| 亚洲av色香蕉一区二区三区精品| 久久精品国产亚洲精品色婷婷| 亚洲色大成网站www永久男同| 日韩精品有码中文字幕| 横山县| 欧美激情一区二区久久久| 午夜AAAAA级岛国福利在线| 久热这里只有精品视频3| 中文字幕日韩精品国产| 青岛市| 精品婷婷色一区二区三区| 免费av网站|