我正在尝试为我的网站和自己的移动应用程序制作一个内部使用的私有API,我正在尝试添加身份验证,但我看到的任何地方都说使用令牌而不是会话
但实际上它是不是一回事,只是一个不同名称的文本字符串?
如果我POST到login.php?PHPSESSID = XXX或/ api / loginuser?token = XXX,它们随每个请求一起发送,在服务器端/数据库上进行身份验证并识别登录的用户
???它似乎是令牌和会话ID完全相同只是您必须自己生成的令牌和会话已内置函数或我完全错过了什么?我理解PHP会话只在PHP中,所以这就是为什么混乱?因为其他编程语言没有自己的会话所以他们创建了一个令牌?
答案 0 :(得分:2)
标记通常用于RESTful API。一个应用程序使用令牌的原因是为了保持它的无状态 - 设计RESTful API的原则之一。令牌不存储在服务器上,这是使它们与会话和cookie不同的因素。
...因为其他编程语言没有自己的会话所以他们创建了一个令牌?
不,正如已经提到的,使用令牌的主要目的是保持API无状态。即使是用PHP编写的API也可能使用令牌。例如,现在被视为JSON Web Tokens (JWT)的industry standard具有PHP库。