php - 基于 session 和基于 token 的用户认证方式到底该如何选择?
伊谢尔伦
伊谢尔伦 2017-04-11 10:14:55
[PHP讨论组]

我的理解:
虽然确实都是“客户端记录,每次访问携带”,但 token 很容易设计为自包含的,也就是说,后端不需要记录什么东西,每次一个无状态请求,每次解密验证,每次当场得出合法 /非法的结论。这一切判断依据,除了固化在 CS 两端的一些逻辑之外,整个信息是自包含的。这才是真正的无状态。
而 sessionid ,一般都是一段随机字符串,需要到后端去检索 id 的有效性。万一服务器重启导致内存里的 session 没了呢?万一 redis 服务器挂了呢?

似乎做APP都会用token这方式

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(4)
巴扎黑

做服务一般都会用 token 来作为有效凭证,题主说的 session 先不说意外情况,光是吃内存就受不住

阿神

RESTful Api 中应该如何设计权限认证

《理解OAuth2.0》

巴扎黑

层次不一样,session是代表会话,token代表权限,多数系统将权限和会话混为一潭,或者将权限放到会话下面,导致没有很好区分这个概念。比如匿名用户也有会话,会话结束仍然有权限。

高洛峰

你说的情况token并不能解决。。。token也是需要服务端存储的,因为token里面可能包含了很多的信息,权限,过期时间等等,所以也是需要存储的。

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

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