Php Yii2 REST API基本身份验证(会话覆盖)
我已经在我的用户模型中实现了findIdentityByAccessTokenPhp 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
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方法扩展而来的类(可能还有质询方法)。之后,您可以将该类作为行为添加到所有控制器(或者更好地使所有控制器从具有该行为的一个控制器继承) 请看一下这个链接: