完全RESTful注册,登录,注销,激活和重置密码API

时间:2020-10-10 06:03:55

标签: rest architecture api-design

我有以下API资源:

/managers
/managers/activate?activationToken=TOKEN
/managers/login
/managers/resetPassword

/managers端点用于CRUD操作,还创建了一个新的Manager,然后通过电子邮件以/managers/activate?activationToken=TOKEN的形式通过电子邮件发送激活链接,然后该资源返回“ Manager”的JSON对象表示形式带有将用于后续请求的身份验证令牌。

或者,/managers/login端点接受一个管理器对象或查询参数(用户名和密码)进行登录(表示获得身份验证令牌)

响应如下:

{
  "manager" : {
     "entityId" : "0-1",
     "authToken" : "THE_TOKEN"

  }
}

如果管理员忘记了密码,则资源/managers/resetPassword可用,并且HTTP GET传递到此端点,并将电子邮件地址和新密码作为有效负载传递,该资源将通过电子邮件发送密码重置链接,该链接看起来基本上是像这样:/managers/resetPassword?resetPasswordToken=TOKEN",当通过简单的HTTP GET访问时,它会触发密码更新,这特别有效,因为管理员在电子邮件中只需单击此按钮,默认情况下,浏览器在这种情况下就可以触发HTTP GET。 / p>

此系统有效,但它不是RESTful的,也就是说,它打破了基于“名词”的资源URI,并引入了诸如“登录”,“重置密码”和“激活”之类的动词,因此,这里的问题是我们如何做到这一点这样,它将完全基于RESTful和基于纯名词的URI。

0 个答案:

没有答案
相关问题