php – 如何在rest API中传递令牌?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何在rest API中传递令牌?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1999字,纯文字阅读大概需要3分钟。
内容图文
![php – 如何在rest API中传递令牌?](/upload/InfoBanner/zyjiaocheng/746/17f9346bd56140b78d43feb15b0804fd.jpg)
参见英文答案 > RESTful Authentication 14个
我是第一次探索REST API的世界,我已经不得不通过使用Slim来处理它,但现在我想成为一个自制的解决方案,考虑到我不需要任何框架来制作一个简单的休息Api.
我所做的是创建一个这样的页面:
<?php
$method = $_SERVER['REQUEST_METHOD'];
$request = explode("/", substr(@$_SERVER['PATH_INFO'], 1));
switch ($method)
{
case 'PUT':
echo "PUT";
break;
case 'POST':
echo "POST";
break;
case 'GET':
echo "GET";
break;
case 'DELETE':
echo "DELETE";
break;
default:
handle_error($request);
break;
}
我的目标是实现一个访问令牌,我想在标题中传递它但我不确定(我正在寻找一种安全模式).但是,如果我从命令行运行它:
curl -X GET http://localhost/v1
我得到GET,只是举例说明它应该如何工作.所有其他询问都是如此.现在真正的问题是:只有在我传递令牌时,如何调用交换机中的方法?例如,在页面顶部将执行控件将进行这样的检查:
if(!isset($_SERVER['AUTH_USER']))
{
exit('TOKEN not provide');
}
另一个问题是如何通过curl传递令牌?因为如果我通过……
我可以通过卷曲阅读标题,但它会如何工作?
更新:
正如@Paradoxis所提到的,我试过:
url http://localhost/v1 -H "Authorization: <token>"
但似乎我没有采取标题.我花时间了解为什么标题没有传递,所以在我的代码中我添加了这一行:
print_r(apache_request_headers());
这就是结果:
Array
(
[Host] => localhost
[User-Agent] => curl/7.46.0
[Accept] => */*
[Authorization] => <token>
)
如何在request_headers中看到我在标题中可以正确看到,但我无法通过使用$_SERVER [‘Authorization’]或$_SERVER [‘HTTP_Authorization’]来捕获它
解决方法:
How you can see in the request_headers I can see correctly in the
header, but I can’t catch it through the use of
$_SERVER[‘Authorization’] or $_SERVER[‘HTTP_Authorization’]
每当你需要查看标题,甚至是你认为应该可用的任何其他信息时,我建议你像这样调试它:
var_dump($_SERVER);
最有可能你会发现它:$_SERVER [‘HTTP_AUTHORIZATION’]
注意:这是区分大小写的! Php获取标题,将键大写,将“ – ”更改为“_”并添加“HTTP_”.
注意2:不要使用标准的http标头,例如自定义令牌的授权.这是针对HTTP Basic Authentication.如果您实现了自定义令牌,那么请使用您的自定义http标头.
内容总结
以上是互联网集市为您收集整理的php – 如何在rest API中传递令牌?全部内容,希望文章能够帮你解决php – 如何在rest API中传递令牌?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。