<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國際加速解決方案。 廣告
                ## `Auth` 組件 ?本組件用于 API 中的授權與會話,基于 JWT,使用 BearerToken 的方式傳遞。 | 類 | 調用 | | --- | --- | --- | Mix\Auth\Authorization | app()->auth | ## 依賴注入配置 [>> 到 GitHub 查看默認配置 <<](https://github.com/mix-php/mix/blob/v2/applications/http/config/main_coroutine.php#L233) JWT 支持的全部算法: - Mix\Auth\JWT::ALGORITHM_HS256 - Mix\Auth\JWT::ALGORITHM_HS384 - Mix\Auth\JWT::ALGORITHM_HS512 - Mix\Auth\JWT::ALGORITHM_RS256 - Mix\Auth\JWT::ALGORITHM_RS384 - Mix\Auth\JWT::ALGORITHM_RS512 HS 算法配置: ``` // jwt [ // 類路徑 'class' => Mix\Auth\JWT::class, // 屬性 'properties' => [ // 鑰匙 'key' => 'example_key', // 簽名算法 'algorithm' => Mix\Auth\JWT::ALGORITHM_HS256, ], ], ``` RS 算法配置: ``` // jwt [ // 類路徑 'class' => Mix\Auth\JWT::class, // 屬性 'properties' => [ // 私鑰 'privateKey' => '', // 公鑰 'publicKey' => '', // 簽名算法 'algorithm' => Mix\Auth\JWT::ALGORITHM_RS256, ], ], ``` ## 使用范例 獲取 access_token 的接口: ``` // 授權方法 public function actionAuth() { /* 驗證賬號密碼成功后 */ // 創建Token $payload = [ "iss" => "http://example.org", // 簽發人 'iat' => time(), // 簽發時間 'exp' => time() + 7200, // 過期時間 'uid' => 1088, ]; $accessToken = app()->auth->createToken($payload); // 響應 $data = [ 'status' => 0, 'data' => [ 'access_token' => $accessToken, 'expire_in' => 7200, ], ]; return $data; } ``` 效驗Token:在前置中間件中校驗。 ~~~ // 前置中間件的 handle 方法 public function handle($callable, \Closure $next) { // 添加中間件執行代碼 $payload = []; try{ $payload = app()->auth->getPayload(); }catch (\Throwable $e){ // token解碼失敗 } if (empty($payload)) { // 返回錯誤碼 $data = [ 'status' => 30001, ]; return $data; } // 執行下一個中間件 return $next(); } ~~~ >[danger] 每調用一次 getPayload 就會解碼一次,所以解碼后的用戶信息需要保存起來,不要在獲取用戶信息時每次都去解碼 BearerToken 傳值范例: ![](https://i.loli.net/2019/06/10/5cfdfde331f4921098.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>

                              哎呀哎呀视频在线观看