jak*_*aks 1 authentication rest
我想为身份验证和帐户管理设计REST服务.请让我知道以下是否满足REST风格.
POST http://server/security/authenticate?username=xxx&password=yyy
POST http://server/security/forgotPassword?username=xxx&email=yyy
PUT http://server/security/changePassword?oldPassword=xxx&newPassword=yyy
Run Code Online (Sandbox Code Playgroud)
HTTP方法POST和PUT是否就在这里?由于身份验证不会修改任何内容,因此最好在此处使用GET吗?我很迷惑.
不要那样做.不要出于任何原因将密码放在URL中.
在这种情况下,我对你要做的事情有点困惑 - 一般来说,REST API中的身份验证/授权不是由资源本身处理的,但是如果你正在设计一个单独的身份验证API,也许这个说得通.简单的答案是,将身份验证数据放在请求正文中,然后通过SSL发送.所以
POST https://server/security/changePassword/
Run Code Online (Sandbox Code Playgroud)
并拥有正文中的数据.并确保用户必须在您的服务中进行身份验证!
从REST设计的角度来看,将POST视为在主体上执行操作的服务.理想情况下,让它以200/201状态响应,并使用创建/修改资源的URL来定位Location标头.
当URL(而不是查询参数)包含要创建资源的位置时,将使用PUT.
可以说,这将是一个宁静的举动
GET https://server/security/{username}/{email}/forgottonPassword/
Run Code Online (Sandbox Code Playgroud)
但这有点滥用......坚持帖子.
如果您尝试对资源进行身份验证,则授权标头(错误名称,但要使用的标头)就是这些标头的位置.
在这种情况下,进行用户名/密码身份验证的标准休息方式称为基本身份验证
| 归档时间: |
|
| 查看次数: |
677 次 |
| 最近记录: |