PHP API会话与用于身份验证的令牌


PHP API session vs token for authentication

我正在尝试为我的网站和自己的移动应用程序制作一个内部使用的私人API,我正在尝试添加身份验证,但无论我在哪里看到它都说要使用令牌,而不是会话

但它在现实中不是同一件事,只是一个不同名称的文本字符串吗?

如果我POST到login.php?PHPSSID=XXX或/api/loginuser?token=XXX它们与每个请求一起发送,在服务器端/数据库上进行身份验证,并识别登录的用户

令牌和会话id似乎完全相同——只是你必须自己生成令牌,会话已经内置了函数,还是我完全缺少了什么?我知道PHP会话只在PHP中,所以这就是为什么混淆的原因吗?因为其他编程语言没有自己的会话,所以他们创建了一个令牌?

令牌通常用于RESTful API。一个应用程序使用令牌的原因是保持其API无状态——这是设计RESTful API的原则之一。令牌不存储在服务器上,这是使它们与会话和cookie不同的因素。

因为其他编程语言没有自己的会话,所以他们创建了一个令牌?

不,正如前面提到的,使用令牌的要点是保持API无状态。即使是用PHP编写的API也可能使用令牌。例如,现在被视为行业标准的JSONWebTokens(JWT)有一个PHP库。