python - 前端如何使用token
黄舟
黄舟 2017-04-17 17:31:52
[Python讨论组]

大家好,从网上找了很多关于token的文章,都是提到要生成一个token,然后前端每次请求的时候,要使用这个token,请问下如何在前端使用生成的token?

前端能就使用jQuery搞定,还是需要其他的前端框架配合?能有这方面的完整示例吗?

做后端的,对前端的东西有些不太懂,请见谅
先谢谢大家了!!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(9)
ringa_lee

大多数情况下,token作为一种令牌,都是在服务器端生成,生成的方法很多,从简单点的对时间或者id或者两个混合起来进行哈希运算的值到自己设计更复杂的算法都可以,生成的目的是为了给前端下一次通信时使用这个token作为令牌,当作为一个请求资源的许可的标识,而服务器则会视这个token在一段时间内都是有效的,并且还可以额外看情况加上是否是同一个ip之类的其它的限制,从而防止某种资源被非法访问

偶有前端(包括本地客户端或者app)生成token的情况是已经约定好了一个好的加密机制,服务器可以信任客户端的这个输入的情况下可以由前端或者客户端生成

怪我咯

一般token都是服务器端生成,做csrf的。我在补充下我见过前端生成的栗子,虽然没啥卵用,但让我废了好大的劲才发现。
譬如你有一个验证码的表单,你在传递验证码的时候,新增一个隐藏域,将验证码用你本地的js加密后,作为参数传递,这样在服务器端可以检测验证码是不是被篡改过。

但这样没啥卵用,因为在提交的时候用同样的js模拟即可。

天蓬老师

问题是前端生成的token给后台有用吗

高洛峰

token一般都是后端生成的,在登陆之后返回,前端保存token,之后每次请求都带上token来验证身份。

天蓬老师

使用领域很多,以表单为例子:

  1. 后台生成token.

  2. 前端打印表单,并且讲该token变成隐藏项。<input type="hide" value="{{token}}">

  3. 客户提交表单。

  4. 后台验证提交的token合法性。

  5. 验证成功,处理表单。验证失败,返回错误处理页面。

ringa_lee

你做后台应该很了解token才对呀。
用户登录后,生成一个session_id,即token,可以存在redis里。然后前端或客户端保存起来,存cookie或者LS都行,然后所有的请求作为基类参数带上(也有通过cookie带的),然后server端再取到后,验证你是不是你。

大家讲道理

前台生成的token,可能会存在安全性问题吧

ringa_lee

因为http协议是无状态的 token是后台给你发的一个唯一标识 你再去访问后台时带上这个token 后台就知道你是谁了

同session的作用

怪我咯

一般是后端有个结构给你拿token的,然后你请求的时候,根据约定
把token

  1. 放在header中

  2. 放uri参数中

  3. 放body表单里

给后端

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号