天天看点

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',注意有一个空格

所以只要这样就可以了