Yii2 针对Yi2的REST API,身份验证器(HttpBearerAuth)未在服务器上工作

Yii2 针对Yi2的REST API,身份验证器(HttpBearerAuth)未在服务器上工作,yii2,restful-authentication,Yii2,Restful Authentication,我刚刚创建了一个使用RESTAPI的项目(使用yii2框架)。 RESTAPI的所有问题在localhost上都非常有效。但是,当将项目带到服务器上时(也使用相同的数据库),授权不可用。现在我正在使用“yii\filters\auth\HttpBearerAuth” 在模型“implements IdentityInterface”中,有一个查找令牌函数“findIdentityByAccessToken”,它非常简单,“validateAuthKey”函数总是返回true;见下文: publi

我刚刚创建了一个使用RESTAPI的项目(使用yii2框架)。
RESTAPI的所有问题在localhost上都非常有效。但是,当将项目带到服务器上时(也使用相同的数据库),授权不可用。现在我正在使用“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;  
}  
查看任何图片: 任何人都可以对这个问题有一些经验,你能告诉我如何解决它吗?谢谢你的好意

  • 注:
  • 我正在关注这个项目(它在本地主机上运行得很好;我也在我的服务器上完全部署了这个项目,它引发了同样的问题)
  • 为了确保服务器配置正确:我创建了两个操作,一个是授权的,另一个不是。我检查了未经授权的操作,效果非常好。=======>
  • actionView未经授权=>正在获取API信息。没关系
  • actionIndex由“yii\filters\auth\HttpBearerAuth”=>FAIL授权

    • HttpBearerAuth使用
      $user->loginByAccessToken
      进行授权

      validateAuthKey
      “loginByCookie”
      使用(在本例中似乎未使用)


      尝试使用
      QueryParamAuth
      进行测试(更容易测试)

      在我的例子中,问题是服务器删除了授权头 我需要将此添加到.htaccess

       SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
      

      您的服务器使用的是Nginx还是Apache?以下是我的服务器配置:+Web服务器:apache2.4.16(Unix)+openssl1.0.1e+php5.5.27Chị乌尔ồi、 trướCTừng gặPVấnđề vớ我是阿帕奇的恩金克斯·阿帕奇·塞奇亚·巴吉ờ :汉克斯,你能告诉我你对NginX的解决方案吗?它可能对我有用@@你有没有找到解决办法?据我所知,我也有同样的问题。你能再详细解释一下你的意思吗?我不太确定我是否理解您希望我尝试的内容。可能我应该发表评论,而不是回答。但无论如何,我想了解两个想法:1:validateAyutnkey不用于本例。2.尝试使用QueryParamAuth并以这种方式授权…/app user tokens?access\u token=token。是否会出现401错误?为了搜索引擎优化:如果使用Plesk,这是必需的,因为Plesk的默认设置是删除授权头。