<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## **第一種授權方式:授權碼** **授權碼(authorization code)方式,指的是第三方應用先申請一個授權碼,然后再用該碼獲取令牌。** 這種方式是最常用的流程,安全性也最高,它適用于那些有后端的 Web 應用。授權碼通過前端傳送,令牌則是儲存在后端,而且所有與資源服務器的通信都在后端完成。這樣的前后端分離,可以避免令牌泄漏。 **第一步**,A 網站提供一個鏈接,用戶點擊后就會跳轉到 B 網站,授權用戶數據給 A 網站使用。下面就是 A 網站跳轉 B 網站的一個示意鏈接。 ~~~javascript https://b.com/oauth/authorize?response_type=code &client_id=CLIENT_ID &redirect_uri=CALLBACK_URL &scope=read ~~~ 上面 URL 中,`response_type`參數表示要求返回授權碼(`code`),`client_id`參數讓 B 知道是誰在請求,`redirect_uri`參數是 B 接受或拒絕請求后的跳轉網址,`scope`參數表示要求的授權范圍(這里是只讀)。 **第二步**,用戶跳轉后,B 網站會要求用戶登錄,然后詢問是否同意給予 A 網站授權。用戶表示同意,這時 B 網站就會跳回`redirect_uri`參數指定的網址。跳轉時,會傳回一個授權碼,就像下面這樣。 ``` https://a.com/callback?code=AUTHORIZATION_CODE ``` ![](https://img.kancloud.cn/2b/94/2b941de75058122c6e8b1516c685e1cf_800x450.png) 第三步,A 網站拿到授權碼以后,就可以在后端,向 B 網站請求令牌 ``` https://b.com/oauth/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`參數是令牌頒發后的回調網址。 ![](https://img.kancloud.cn/77/ac/77ac6fa68d51da782605c7e67a03feee_800x450.png) 第四步,B 網站收到請求以后,就會頒發令牌。具體做法是向`redirect_uri`指定的網址,發送一段 JSON 數據。 ``` { "access_token":"ACCESS_TOKEN", "token_type":"bearer", "expires_in":2592000, "refresh_token":"REFRESH_TOKEN", "scope":"read", "uid":100101, "info":{...} } ``` 上面 JSON 數據中,`access_token`字段就是令牌,A 網站在后端拿到了。 ![](https://img.kancloud.cn/c5/f0/c5f063ce6ff13735f0ef05f44a6c93fe_800x450.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看