我刚刚创建了一个使用 REST API 的项目(使用 yii2 框架)。
REST API 的所有问题在本地主机上都运行得非常好。但是当将项目放在服务器上时(也使用相同的数据库),授权不可用。现在我正在使用“yii\filters\auth\HttpBearerAuth”
在模型“implements IdentityInterface”内部,有一个查找令牌函数“findIdentityByAccessToken”,非常简单,“validateAuthKey”函数始终返回 true;见下文:
public static function findIdentityByAccessToken($token, $type = null){
return static::findOne(["token" => $token]);
}
public function validateAuthKey($token)
{
return true;
}
查看任何图片:https://www.flickr.com/photos/40158620@N03/20701523349/in/dateposted-public/ https://www.flickr.com/photos/40158620@N03/20701523349/in/dateposted-public/任何人都可以对这个问题有一些经验,你能告诉我如何解决它吗?谢谢你的好心。
- Note:
- 项目我正在关注https://github.com/NguyenDuyPhong/yii2_advanced_api_phong https://github.com/NguyenDuyPhong/yii2_advanced_api_phong(有用在本地主机上很好;我也在我的服务器上部署了该项目,它提出了同样的问题)
- 为了确保服务器配置正确:我创建了 2 个操作,其中 1 个已授权,另一个未授权。我检查了未经授权的操作,效果很好。 =======>
- actionView 未获得授权 => 获取 API 信息。没问题
- actionIndex 已被“yii\filters\auth\HttpBearerAuth”授权 => FAIL
就我而言,问题是服务器删除了授权标头
我需要将其添加到 .htaccess
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)