是否可以在 HTTP 请求中使授权 header 可选?
Is it possible to make the authorization header optional on an HTTP request?
所以我正在创建一个论坛网站(比如 reddit)。在一个线程上,我想有两种不同的方式从后端请求线程的评论。
- 一个用于用户未登录。
- 如果用户已登录,则为一个。
加上用户未登录时的请求
我只想 return 评论:
upvoteCount
值(有多少用户赞成评论)
- 没有
userUpvoted
值(或 userUpvoted = null
)
加上用户登录时的请求
我想 return:
upvoteCount
值
userUpvoted
值(如果用户赞成评论,前端可以显示)
端点将是这样的:
GET /thread/{threadID}/comments?startIndex={start index}&count={number of comments to return}
对于已登录的用户,我将在 header 中发送授权令牌。
对于未登录的用户,我不会在header中发送授权令牌。
是否可以像这样将授权 header 发送到 HTTP 请求是可选的?
或者我应该做两个单独的端点吗?
Is it possible to make sending the authorization header optional to an HTTP request like this? Or should I just make two separate endpoints?
是的,您可以根据请求中是否存在授权字段来改变资源的表示(内容)。
这是个好主意吗?这是一个更难的问题。
您已经知道两个独立的资源是如何工作的;那里不会有任何重大惊喜。
我们还有一个标准化机制来指示单个资源的多种表示形式可用。
但是授权字段,具体来说,是一种特殊情况,因为该字段在访问控制中扮演的角色;这对通用缓存的工作方式有影响,因此我们用于指示多个表示的 Vary 字段对授权字段等有豁免权....
如果您提交了这样的单个资源实现以进行代码审查,我也坚持要有决策记录,以便我们永久记录我们正在考虑的权衡(包括,例如,什么是应该在超级管理员爱丽丝需要验证表示的“匿名”变体时发生。
所以我正在创建一个论坛网站(比如 reddit)。在一个线程上,我想有两种不同的方式从后端请求线程的评论。
- 一个用于用户未登录。
- 如果用户已登录,则为一个。
加上用户未登录时的请求
我只想 return 评论:
upvoteCount
值(有多少用户赞成评论)- 没有
userUpvoted
值(或userUpvoted = null
)
加上用户登录时的请求
我想 return:
upvoteCount
值userUpvoted
值(如果用户赞成评论,前端可以显示)
端点将是这样的:
GET /thread/{threadID}/comments?startIndex={start index}&count={number of comments to return}
对于已登录的用户,我将在 header 中发送授权令牌。
对于未登录的用户,我不会在header中发送授权令牌。
是否可以像这样将授权 header 发送到 HTTP 请求是可选的?
或者我应该做两个单独的端点吗?
Is it possible to make sending the authorization header optional to an HTTP request like this? Or should I just make two separate endpoints?
是的,您可以根据请求中是否存在授权字段来改变资源的表示(内容)。
这是个好主意吗?这是一个更难的问题。
您已经知道两个独立的资源是如何工作的;那里不会有任何重大惊喜。
我们还有一个标准化机制来指示单个资源的多种表示形式可用。
但是授权字段,具体来说,是一种特殊情况,因为该字段在访问控制中扮演的角色;这对通用缓存的工作方式有影响,因此我们用于指示多个表示的 Vary 字段对授权字段等有豁免权....
如果您提交了这样的单个资源实现以进行代码审查,我也坚持要有决策记录,以便我们永久记录我们正在考虑的权衡(包括,例如,什么是应该在超级管理员爱丽丝需要验证表示的“匿名”变体时发生。