尝试注销而未登录后返回的HTTP状态

Cro*_*ire 4 rest http status

假设我有一个RESTful身份验证端点:

http://example.com/api/v1/auth

  • 一个POST电子邮件和密码请求允许登录.请求被用正确的登录或403不正确的HTTP 200的响应反驳.
  • DELETE请求允许注销.

很明显,在成功注销后,我应该返回HTTP 200.如果用户尝试在不登录的情况下注销,我应该返回什么HTTP响应代码?

gna*_*729 13

很明显,您应该返回状态200以成功注销?一点也不.如果您没有返回具有该状态的响应,那么204或205将更合适(205 ="无内容,刷新"),因为没有要返回的内容,并且客户端应该刷新其视图.

如果用户没有登录:想想客户会怎么想它.客户端不知道用户没有登录.或者客户端不确定用户是否未登录,并以其他方式登出.通话结束后,用户退出.提供与以前登录用户不同的状态的目的是什么?即使客户端正确检测到这样的状态,客户端可以做些什么呢?

我会给出完全相同的回应.不要将其视为"我已退出",将其视为"我尚未登录".如果您确实要报告它,请为已登录的用户和未登录的用户返回具有不同内容的状态200.