【问题标题】:Best practice for REST API URL for authentication用于身份验证的 REST API URL 的最佳实践
【发布时间】:2020-11-12 07:51:20
【问题描述】:

我是 REST API 开发的初学者,我在网上阅读了一些文档,现在我正在为具有不同类型用户的 2 个平台开发一个 REST API。

在 REST API 开发中为身份验证端点选择 URL 的最有效方法是什么?

第一条规则之一是切勿在 REST API URL 中使用动词,因此这些 URL 不正确。

  • /auth/resetPassword
  • /auth/refreshToken
  • /auth/登录
  • ...

重置、刷新、登录都是动词。这个网址正确吗?有什么更好的选择?

那么如果我有更多那么一种用户可以正确使用这些?

  • /auth/customers/login
  • /auth/admins/login

登录是动词,对吗? 然后 /auth/:entity/ 在我看来不太适合我阅读的有关 REST API 的内容。

【问题讨论】:

    标签: rest authentication api-design restful-authentication


    【解决方案1】:

    “无动词”规则并不是硬性规则,它们只是人们喜欢的一种设计方法。

    虽然绝对可以将每个端点转换为类似于名词的东西,并且您只是将状态推到管道中,但这并不总是可取的。如果你真的觉得你是在尝试在一个圆孔中钉方钉,那么你可能就是这样,像“登录”端点这样的东西绝对是一个经典的例子。

    但是,如果您将所有内容都转换为“所有内容都必须是名词,并且我们正在 PUTing 和 GETing 状态”的 REST 样式,那么可以这样看待:

    1. 您没有登录,您正在创建一个新会话(使用 PUT 或 POST)。
    2. 您不是在“重置密码”,而是向password 端点发送PUT 请求。

    但我不确定是否会推荐引入这种复杂性。

    我还建议您研究 OAuth2,因为您正在做的事情似乎至少有一些重叠,并且重新发明轮子可能是不可取的。

    【讨论】:

    • 确定我不想重新发明轮子,我只是问这种操作通常如何执行。感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 2021-05-24
    • 2017-06-26
    • 2014-01-23
    • 2013-01-17
    • 2014-06-23
    • 1970-01-01
    相关资源
    最近更新 更多