前端后端之间是通过什么方式传输 token 的? [ 2.0 版本 ]
用户登录成功后,后台程序会生成一个带签名的token返回给浏览器,当用户想要进一步操作时必须向后端提供该token,后端验证token无误后才允许进一步操作。但有个问题我一直有疑惑,网上也搜不到,大都是一笔带过,那就是后台生成的token是通过什么方式返回给前台的,cookie还是header?header能支持跨域吗?前端又是怎么把token传给后端的,url还是header?具体怎么弄的能不能说详细点,比如我用php将token加到header里:header("Authorization", $token)
为什么无效,要怎么设置?php 如何接收参数 Authorization
的值?
共 1 个回答
-
1.后台生成的token是通过什么方式返回给前台的
PHP加载页面的时候,直接赋值,比如加载一个a.php,其实是$_params_ = ["token" =>12321321]; extract($_params_, EXTR_OVERWRITE); ob_start(); require "a.php"; $content = ob_get_clean(); echo $content;
具体可以参考Yii的View组件源码renderPhpFile方法(yiisoft\yii2\base\View.php)
在a.php中<!DOCTYPE html> <html> <head> <title></title> </head> <body> <?php echo $token;?> </body> </html>
一般前端都会放到meta标签里面
一般不会存在cookie里面,因为cookie的设置一般都是secure、http_only都是true
header也是可以的,但是需要前后端分离或者是ajax请求,比如$token = 123213; header("token: $token");
2.前端又是怎么把token传给后端的,url还是header
url就算了,get请求把token明文放url上面不安全,post请求把token放body体里面
header也可以,前端发一个请求头是token: 12313
后端可以
$_SERVER["HTTP_TOKEN"]
3.比如我用php将token加到header里:header("Authorization", $token) 为什么无效,要怎么设置
header("Authorization: 1234");
PHP学院的中学生
注册时间:2018-10-23
最后登录:2024-09-23
在线时长:168小时13分
最后登录:2024-09-23
在线时长:168小时13分
- 粉丝29
- 金钱4725
- 威望30
- 积分6705