当前位置:  开发笔记 > 编程语言 > 正文

我应该使用什么方法进行登录(身份验证)请求?

如何解决《我应该使用什么方法进行登录(身份验证)请求?》经验,为你挑选了3个好方法。

我想知道在执行登录请求时我应该使用哪种http方法,为什么?由于此请求在服务器上创建了一个对象(用户会话),我认为它应该是POST,你怎么看?但由于登录请求应该是幂等的,它可能是PUT,不是吗?

对于注销请求,我应该使用DELETE方法吗?



1> planetjones..:

如果您的登录请求是通过提供用户名和密码的用户进行的,则最好使用POST,因为详细信息将在HTTP消息正文中发送,而不是URL.虽然它仍然会以纯文本形式发送,除非您通过https进行加密.

HTTP DELETE方法是删除服务器上的内容的请求.我不认为DELETING内存用户会话确实是它的意图; 更多是删除用户记录本身.因此,注销可能只是一个GET,例如www.yoursite.com/logout.


我不同意LOGOUT应该是GET,因为只需发送一个带有图像标签的用户电子邮件,其中包含src属性,因为"www.yoursite.com/logout"会将该用户注销.

2> Vytautas But..:

我相信您可以将LOGIN和LOGOUT方法转换为基本的CRUD操作CREATE&DELETE.由于您正在创建名为SESSION的新资源并在注销时销毁它:

    POST/login - 创建会话

    DELETE/logout - 销毁会话

我绝不会因为只是因为任何人只是通过发送带有IMG标签的电子邮件或链接到存在这样的IMG标签的网站而进行攻击而进行攻击.()

PS很长一段时间我想知道你将如何创建一个RESTful登录/注销,它结果非常简单,你就像我描述的那样:使用/ session / endpoint和CREATE和DELETE方法,你很好.如果要以某种方式更新会话,也可以使用UPDATE ...



3> Ali Mamedov..:

这是我基于REST指南和建议的解决方案:

登录 -创建资源

请求:

POST => https://example.com/sessions/

BODY => {'login': 'login@example.com', 'password': '123456'}

响应:

http status code 201 (Created)

{'token': '761b69db-ace4-49cd-84cb-4550be231e8f'}

注销 -删除资源

请求:

DELETE => https://example.com/sessions/761b69db-ace4-49cd-84cb-4550be231e8f/

响应:

http status code 204 (No Content)

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有