Php Yii2 REST API基本身份验证(会话覆盖)

Php Yii2 REST API基本身份验证(会话覆盖),php,rest,yii,yii2,Php,Rest,Yii,Yii2,我已经在我的用户模型中实现了findIdentityByAccessToken public static function findIdentityByAccessToken($token, $type = null) { $apiUser = ApiAccess::find() ->where(['access_token' => $token]) ->one(); return self::findOne(['id' =&g

我已经在我的用户模型中实现了findIdentityByAccessToken

public static function findIdentityByAccessToken($token, $type = null)
{
    $apiUser = ApiAccess::find()
        ->where(['access_token' => $token])
        ->one();
    return self::findOne(['id' => $apiUser->idUser]);
}
在浏览器中,如果我登录到系统,我可以点击api get端点,输入我的身份验证令牌并正确地进行身份验证

然而,如果我没有登录,我会被踢回我的登录屏幕。使用rest客户机,我将返回登录屏幕的HTML

这表明了我眼中的两件事中的一件。在当前状态下,它需要“登录会话”才能访问该api模块。或者#2,我没有正确地传递身份验证令牌

我的请求头:

 Accept: */*
 Cache-Control: no-cache
 Authentication: Basic base64('mytoken':)

如何覆盖我的“默认”登录行为?或者正确发送身份验证令牌?

您可以覆盖模型用户的登录方法和loginByAccessToken,以更改登录行为。见:

另一方面,您可能需要的是编写一个控制器并实现登录操作(如果您还没有)然后实现一个从AuthMethod和authenticate方法扩展而来的类(可能还有质询方法)。之后,您可以将该类作为行为添加到所有控制器(或者更好地使所有控制器从具有该行为的一个控制器继承)

请看一下这个链接: