<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 獲取token的幾個參數概念 獲取token一般會涉及到幾個參數`appid`,`appkey`,`timestamp`,`nonce`,`sign`。我們通過以上幾個參數來獲取調用系統的憑證。 * `appid`和`appkey`可以直接通過平臺線上申請,也可以線下直接頒發。`appid`是全局唯一的,每個`appid`將對應調用方,`appkey`需要高度保密。 * `timestamp`是時間戳。時間戳的目的就是為了減輕DOS攻擊。防止請求被攔截后一直嘗試請求接口。服務器端設置時間戳閥值,如果請求時間戳和服務器時間超過閥值,則響應失敗。 * `nonce`是隨機值。隨機值主要是為了增加`sign`的多變性,也可以保護接口的冪等性,相鄰的兩次請求`nonce`不允許重復,如果重復則認為是重復提交,響應失敗。 * `sign`是參數簽名,將`appkey`,`timestamp`,`nonce`拼接起來進行md5加密(當然使用其他方式進行不可逆加密也沒問題)。 * `token`,使用參數`appid`,`timestamp`,`nonce`,`sign`來獲取token,作為系統調用的唯一憑證。`token`可以設置一次有效(這樣安全性更高),也可以設置時效性,這里推薦設置時效性。如果一次有效的話這個接口的請求頻率可能會很高。`token`推薦加到請求頭上,這樣可以跟業務參數完全區分開來。 ## 身份驗證 * 用戶登錄向服務器提供認證信息(如賬號和密碼),服務器驗證成功后返回Token給客戶端; * 客戶端將Token保存在本地,后續發起請求時,攜帶此Token; * 服務器檢查Token的有效性,有效則放行,無效(Token錯誤或過期)則拒絕。 * 安全隱患:Token被劫持,偽造請求和篡改參數。 ## Token+AppKey簽名驗證 與上面開發平臺的驗證方式類似,為客戶端分配AppKey(密鑰,用于接口加密,不參與傳輸),將AppKey和所有請求參數組合成源串,根據簽名算法生成簽名值,發送請求時將簽名值一起發送給服務器驗證。 這樣,即使Token被劫持,對方不知道AppKey和簽名算法,就無法偽造請求和篡改參數。再結合上述的重發攻擊解決方案,即使請求參數被劫持也無法偽造二次重復請求。 登錄退出過程: ![](https://img.kancloud.cn/04/d2/04d2e04aa796d570cfa4716122e9dd40_800x402.png) 后續請求: ![](https://img.kancloud.cn/02/80/028041e6e9270b4b9e2951bc77b1d2e7_600x818.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>

                              哎呀哎呀视频在线观看