天天看點

Yii2的HttpBearerAuth

記性不好,就記錄一下

Yii2官方網站有HttpBearerAuth的restful驗證方式,但是我在header裡傳access-token總是不行,于是就去看了一下源碼。

/**
     * @inheritdoc
     */
    public function authenticate($user, $request, $response)
    {
        $authHeader = $request->getHeaders()->get('Authorization');
        if ($authHeader !== null && preg_match('/^Bearer\s+(.*?)$/', $authHeader, $matches)) {
            $identity = $user->loginByAccessToken($matches[1], get_class($this));
            if ($identity === null) {
                $this->handleFailure($response);
            }
            return $identity;
        }

        return null;
    }
           

可以看到,header裡接收的是Authorization,而且,token的格式是'Bearer空格access-token',注意有一個空格

是以隻要這樣就可以了