Restful设计,如何创建授权服务

Restful设计,如何创建授权服务,rest,authentication,restful-authentication,api-design,jwt,Rest,Authentication,Restful Authentication,Api Design,Jwt,我正在设计我的第一个RESTful API,我对一些事情感到困惑 到目前为止,我正确地使用了状态码、名词和动词,因此,一篇帖子将创建一个新的联系人等 我现在正在设计我的登录表单,不会使用HTTP身份验证,我将获得一个json web令牌并将其存储在cookie中。我的问题是 1) 登录服务使用什么名词,我假设api/login是错误的。我发布了一个用户名和密码,并期望登录和JWT被发送回来。我不是在创建用户,也不是在获取用户,所以我不知道该怎么称呼它 2) 我在另一个SO答案中读到,如果对API

我正在设计我的第一个RESTful API,我对一些事情感到困惑

到目前为止,我正确地使用了状态码、名词和动词,因此,一篇帖子将创建一个新的联系人等

我现在正在设计我的登录表单,不会使用HTTP身份验证,我将获得一个json web令牌并将其存储在cookie中。我的问题是

1) 登录服务使用什么名词,我假设api/login是错误的。我发布了一个用户名和密码,并期望登录和JWT被发送回来。我不是在创建用户,也不是在获取用户,所以我不知道该怎么称呼它

2) 我在另一个SO答案中读到,如果对API进行了调用,并且令牌无效(如果在前端过期,则永远不会进行调用),那么403是正确的状态代码,但是您如何区分“登录令牌无效”和“登录有效,但用户试图访问其他人的内容”

3) 如果用户正在登录并发送了错误的凭据,那么正确的状态代码是什么?这似乎是401,但其他答案说不要使用它,因为浏览器会显示一个密码框

任何帮助都将不胜感激

  • POST/auth令牌
  • 如果返回带有403响应的实体,则可以包含该信息
  • 如果用户通过发布身份验证令牌登录,则可以返回403禁止。发件人:
  • 服务器理解该请求,但拒绝满足该请求。授权没有帮助,请求不应重复。[…]如果请求方法不是HEAD,并且服务器希望公开未满足请求的原因,则应在实体中说明拒绝的原因

    您可以使用实体来解释登录失败的原因