我正在为我的应用程序构建一个 RESTful API。很少有服务是公开的,其余的都需要身份验证和授权。
需要明确的是,我的问题不是关于验证 Web 服务。我已经决定发送带有服务器提供的访问令牌的 HTTP 标头。其原因包括:
- 创建一个可以跟踪用户活动的“会话”
- 在 XXX 不活动后超时访问令牌
- 跟踪每个“会话”的用户行为模式
到目前为止,这种方法运行良好。我对提供“登录”服务的任何设计指南感兴趣。我不想只对请求进行身份验证,但我想针对“会话”跟踪 Web 服务的使用情况。
除了“会话”跟踪之外,我们还有一些要求,要求我们跟踪失败的登录尝试并在 XXX 次失败尝试后采取适当的措施,以及密码过期和授权前的电子邮件地址验证等。
具体来说,我关心为此设计 URI 的最佳方式。一种选择是:
/api/authentication/login?username=UN&password=PW
这可以返回要在标头中用于安全服务调用的访问令牌。这是一个好方法吗?有更好的方法吗?是否有更好的模式用于命名 URI?
我最大的问题是 URI 并不纯粹坚持“URI 应该代表资源”的方法。结束结束可能没什么大不了的,但我想知道是否有更好的方法。
谢谢!