GET请求上RESTful API的身份验证

GET请求上RESTful API的身份验证,rest,authentication,access-token,Rest,Authentication,Access Token,所以REST架构实现了GET、POST、PUT和DELETE请求。我想谈谈GET请求http://example.com/api/students这是REST体系结构下的GET请求,它将为我提供数据库中的学生列表 我的问题是关于身份验证。对GET请求进行身份验证的最佳方法似乎是使用访问令牌,如http://example.com/api/students?token=randomstring 这是如何处理服务器端的,我指的是一个安全过程,以防止有人窃取另一个用户的访问令牌并使用它。令牌是否会在每

所以REST架构实现了
GET
POST
PUT
DELETE
请求。我想谈谈
GET
请求<代码>http://example.com/api/students这是
REST
体系结构下的GET请求,它将为我提供数据库中的学生列表

我的问题是关于身份验证。对GET请求进行身份验证的最佳方法似乎是使用
访问令牌
,如
http://example.com/api/students?token=randomstring


这是如何处理服务器端的,我指的是一个安全过程,以防止有人窃取另一个用户的访问令牌并使用它。令牌是否会在每次请求时刷新并随结果一起返回?首先,您不应该在URL中放置凭据(访问令牌)。这本身并不完全是错误的或被禁止的——这只是一种不好的做法,因为它使得在不公开秘密凭证的情况下无法共享URL(想想如果将URL复制到电子邮件中并发送给朋友会发生什么情况)。URL中的凭据很容易意外地将其暴露给其他人

取而代之的是将令牌填充到HTTP授权头中——这就是为什么我们有它。有许多不同的方法可以使用该头,但在您的情况下,您可能希望使用“bearer”令牌方法。以下是RFC()中的一个示例:

在服务器上,在执行任何其他操作之前检查令牌的有效性。为了防止其他人窃取它,您在连接上强制使用SSL/TLS

令牌可能需要刷新,但这取决于您如何获得它以及基础设施的其余部分。通常情况下,您不需要为每个请求刷新它-仅在它过期的特定时间之后

您可能想看看OAuth2,它定义了获取访问令牌的四种基本方法

GET /api/students HTTP/1.1
Host: example.com
Authorization: Bearer rAndomSTRiNg