Yii2-Restful-API授权验证401探索解决
2018-06-22 05:35:33来源:未知 阅读 ()
做Yii2-Restful-API授权验证,token正常获取,header请求一直401,困扰啊!
检查代码有没有问题啊,不然我也很无奈,好了开始探索。
环境:WAMP
首先我是正常获取token
访问http://localhost/advanced/api/web/v1/users/user-profile出现401
咋整啊,追溯呗,header在哪里验证就往哪走,从哪下手啊?authenticator对应class呗。
public function behaviors() { return ArrayHelper::merge (parent::behaviors(), [ 'authenticator' => [ 'class' => HttpBearerAuth::className(), 'optional' => [ 'login', 'signup-test', ], ] ] ); }
追溯HttpBearerAuth
找到authenticate方法,发现$authHeader = $request->getHeaders()->get('Authorization');
那就打个日志看看$authHeader有没有获取到Header
Yii::info('authHeader=' . json_encode($authHeader), 'test');
如果有,那就别往下看了,再检查下token是不是写错了,检查下authenticate方法,检查下代码。
header都传过来了,那就看下自己的逻辑问题吧。
我的结果:authHeader=NULL
那就硬编码测试下
删除Authorization再次访问http://localhost/advanced/api/web/v1/users/user-profile成功。
这说明我们的代码逻辑没有问题
$authHeader = $request->getHeaders()->get('Authorization');
$request->getHeaders(),header没有get到。
然后问度娘呗
参考:github:https://github.com/yiisoft/yii2/issues/6631
大概是Apache的问题吧
在.htaccess中添加SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
注释硬编码再次访问http://localhost/advanced/api/web/v1/users/user-profile
源码
链接:https://pan.baidu.com/s/1pMhPfsB 密码:9vsq
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- ThinkPHP验证码使用简明教程 2020-02-24
- Laravel 中 “规范” 的开发短信验证码发送功能 2020-02-08
- php验证码的制作思路和实现方法 2019-12-27
- php验证邮箱和ip地址最简单方法 2019-12-21
- 详解cookie验证的php应用的一种SSO解决办法 2019-12-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash