![]() | 1 learnshare 2016-11-04 21:29:22 +08:00 token 保存在本地, cookie 是一个简单的位置 |
![]() | 2 liuxey 2016-11-04 21:29:28 +08:00 浏览器不会把 token 自动加到请求里,因为这是你自己创建的东西,不属于 HTTP 协议的一部分,如果是为了学习,可以这么干,如果是为了使用,那完全没必要; ajax 可以统一添加自然好,那页面中的各种 url 地址你必须要手动加上去,比如:<a href="/xxx.html?token=${token}">,你也可以想一些“聪明”的办法,让你更方便的加 token 在后面。 总之就是麻烦; |
![]() | 4 ericls 2016-11-04 21:39:34 +08:00 via iPhone 不是 single page app ? |
![]() | 6 liuxey 2016-11-04 21:47:04 +08:00 |
7 paranoiagu 2016-11-04 21:48:14 +08:00 via Android 为什么不用 cookie 呢? |
9 paranoiagu 2016-11-04 21:49:23 +08:00 via Android basic authorized 是在 http 头的。 |
![]() | 10 zjsxwc 2016-11-04 21:50:04 +08:00 业内常用做法是让客户端模拟浏览器发送 http 请求,也就 shi 一律都用 cookie ,也就不用你说的 token 了 |
![]() | 12 ericls 2016-11-04 21:54:30 +08:00 via iPhone Token 要取代的是 session 不是 cookie |
![]() | 14 Phant0m 2016-11-04 22:00:35 +08:00 token 存储在本地的 local storage 里 |
15 aprikyblue 2016-11-04 22:08:57 +08:00 拿 token 放在链接里小心 http referer 头的安全性问题。。 |
![]() | 16 pynix 2016-11-04 22:33:08 +08:00 不是 spa 你搞什么 token |
![]() | 18 ichou 2016-11-05 10:56:09 +08:00 via iPhone 用 header 头里的 authorized 字段是可以解决楼主的问题的 |
![]() | 19 microchang 2016-11-05 11:04:15 +08:00 via Android 直接用 jquery 的 ajax 代理所有的 a 标签的网络请求,然后你想怎么玩就怎么玩了 |
![]() | 20 freestyle 2016-11-05 22:04:16 +08:00 写个 js 函数,给网页上所有的 a 标签 href 属性加上 token. https://gist.github.com/hanjm/2102fa5b40d01d0fe64311e37f4d3557 |
![]() | 22 wanganjun OP @microchang 你说的代理 <a> 的请求是这样吗 $('a').click(function () { window.open(this.href, this.target || '_self'); return false; }) 按这个代码也只能把 token 放到 url 里面 |
![]() | 23 ichou 2016-11-06 15:19:11 +08:00 via iPhone 参考 jwt auth |
![]() | 24 garrydzeng 2016-11-06 21:58:59 +08:00 @wanganjun 看起来只能这样: 1. 往 document 对象监听 click 事件,捕获所有 a 标签的 2. 检查是否请求自己的地址 3. 改用 AJAX 添加请求头然后发送请求 另外 ichou 说的是 Authorization 请求头 详见 RFC7235 ( https://tools.ietf.org/html/rfc7235 ) |
![]() | 25 lianxiaoyi 2016-11-07 09:28:12 +08:00 via Android 最近为毛那么多地址癖!最好地址栏什么都不带,但是又能满足我所有的参数!可能麽? |
![]() | 26 wanganjun OP @garrydzeng 如果 ajax 请求回来一个 html 文件该怎么办呢 |
![]() | 27 wanganjun OP @garrydzeng 我试了一下, document.write 可以覆盖页面, 但是地址栏没变, 也没办法点后退按钮回到上一个页面, 看来还是要把 token 放到 query 里面 |
![]() | 28 garrydzeng 2016-11-08 12:28:37 +08:00 |
![]() | 29 XisucksYi 2020-08-31 18:13:47 +08:00 |