无效会话:正确的注销行为

时间:2016-04-16 21:08:40

标签: rest

在REST API中,当为注销请求提供无效令牌时,最常见的行为是什么?

  1. 是否应通知客户无效令牌?
  2. 或者API应该只是回复成功消息吗?
  3. 我理解这更多是针对具体情况的,但只是想知道其他人的想法。

1 个答案:

答案 0 :(得分:1)

这取决于“无效性”的性质。令牌以及您希望用户参与交互的程度。从广义上讲,我想你可以有两种不同形式的无效。

  • 如果它以某种方式格式不正确,那么您基本上会得到一个无效的请求,用户应该被告知使用标准的4xx响应代码。通常,这可能意味着客户端中存在错误,但也可能是对您的身份验证/授权系统的主动攻击。鉴于令牌的语法形式不应该是您安全的来源,通知客户他们可能在他们的软件中存在错误并不是一种非常糟糕的做法。

  • 另一种无效形式是有效令牌已过期 - 在这种情况下,告诉用户他们当前的状态' (由于过期的令牌而有效退出)已经是他们想要的状态了。 (登出)。这里的问题变成了避免在客户端触发自动令牌刷新的问题。使用标准的2xx成功代码应该避免这种情况。

话虽如此,您可能有理由想要通知用户他们已经注销了 - 比如让他们知道任何客户端状态可能都是陈旧的,因为由于令牌无效,客户端无法与服务器通信。最终,这是一个特定于应用程序的问题。