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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## `Auth` 組件 ?本組件用于 API 中的授權與會話,基于 JWT,使用 BearerToken 的方式傳遞,可獨立使用。 ## 組件 使用 [composer]([https://www.phpcomposer.com/](https://www.phpcomposer.com/)) 安裝: ~~~ composer require mix/auth ~~~ ## 依賴注入配置 - [beans/auth.php](https://github.com/mix-php/mix-skeleton/tree/v2.1/manifest/beans/auth.php) 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 的接口: ``` /** * 授權方法 * @return Response */ public function auth(ServerRequest $request, Response $response) { /* 驗證賬號密碼成功后 */ // 創建Token $time = time(); /** @var Authorization $auth */ $auth = context()->get('auth'); $payload = [ "iss" => "http://example.org", // 簽發人 'iat' => $time, // 簽發時間 'exp' => $time + 7200, // 過期時間 'uid' => 100008, ]; $accessToken = $auth->createToken($payload); // 響應 $data = [ 'status' => 0, 'data' => [ 'access_token' => $accessToken, 'expire_in' => 7200, ], ]; return ResponseHelper::json($response, $data); } ``` - 效驗Token (在中間件中校驗): [>> AuthMiddleware::class 源碼 <<](https://github.com/mix-php/mix-skeleton/tree/v2.1/app/Api/Middleware/AuthMiddleware.php) >[danger] 每調用一次 getPayload 就會解碼一次,所以解碼后的用戶信息需要保存起來,不要在獲取用戶信息時每次都去解碼, AuthMiddleware::class 把 JWT Payload 放入了 Request 中,其他位置調用時就不需要解碼了。 - 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>

                              哎呀哎呀视频在线观看