新来的技术总监计划将之前的 mvc 架构做成 restful api ,小弟不才,然后我发现我登录都不会写了,

2017-10-18 22:08:03 +08:00
 mune
请教大家一个完全的登录的 restful api 大概是怎样的,www.aaa.com/v1/username/lisi/pwd/123456 类似这样吗,看了网上的 restful 解释都是一个参数的,俩参数我就懵逼了,特此求教大家,
10323 次点击
所在节点    PHP
59 条回复
kindjeff
2017-10-18 22:14:18 +08:00
登陆要啥 restful
matsuijurina
2017-10-18 22:14:59 +08:00
并不是替换的关系,还是 mvc,只是 v 这一层只需要输出 json 了。restful api 具体怎么写参考新浪微博的 api 文档,那个很全面。
mune
2017-10-18 22:16:30 +08:00
@kindjeff 我不大懂,也不知道需要不需要,(苦笑),
qiukun
2017-10-18 22:37:08 +08:00
对 session 资源的 new create delete
leeg810312
2017-10-18 22:42:53 +08:00
按 restful 风格,登录是创建 session,所以是 post /session,提交数据 username 和 password,返回 Token,注册是创建 user,所以是 post /user
mune
2017-10-18 22:46:31 +08:00
@leeg810312 您能示范一下 登陆的 url 大概是怎样的吗,
timothyye
2017-10-18 22:49:01 +08:00
建议登录最好是 post,不要用 get,并且最好不要把用户名和密码放在 url 里面
yxzhm
2017-10-18 22:50:53 +08:00
@mune 用户名和密码不会出现在浏览器 URL 里,可以是前端框架去调用后面的一个 URL.可以参考下面这个源代码中的 Login 方法
https://github.com/CG542/WebDP/blob/master/dist/js/app.js
newghost
2017-10-18 23:30:32 +08:00
www.aaa.com/api/user/login/lisi/123456

服务器 /api/user/login/:username/:password
zapper
2017-10-18 23:37:53 +08:00
类似于 oauth 那样吧,post 用户名密码得到 token,以 token 作为登录凭证
seeker
2017-10-18 23:49:24 +08:00
恕我直言,这只是形式上的 restful
不是吧 username=xxx&pwd=yyy 改成 username/xxx/pwd/yyy 就是 restful 的
k9982874
2017-10-19 00:04:24 +08:00
先抽象出登录时使用的资源:session
然后按照 restful 语义对 session 进行操作
登录 POST /api/user/session
登出 DELETE /api/user/session
刷新 session PUT /api/user/session
hheedat
2017-10-19 00:08:59 +08:00
@seeker restful 的内涵思想是啥?
hicair
2017-10-19 00:20:39 +08:00
登录密码直接写 url 里大丈夫??
mlyy
2017-10-19 02:13:22 +08:00
@hicair 如果使用了 https,为什么不行?
Sapp
2017-10-19 02:21:03 +08:00
我至今都不是很明白 restful 除了换个请求方式,改一下链接形式以外和正常有啥区别,不都一样开发吗?
huntzhan
2017-10-19 03:33:10 +08:00
登录态基本不能用 REST 的思想来做。一般来说,REST 的 API 应该存在于完成 Authentication、拿到 token 之后(不考虑 read-only、非敏感部分的的 API )。
precisi0nux
2017-10-19 04:04:19 +08:00
@mlyy https 不能加密 URL 吧……
biggun
2017-10-19 04:52:30 +08:00
登录过程不适合用 restful,或者说和 restful 是两种不同的概念,restful (具象状态传输)是制定针对系统资源进行操作方法的一种风格。 @huntzhan 说的对啊,就是用登录过程获取一个 session (产生个 jwt 之类的东西),然后在此基础上利用 restful 风格的 api 对系统资源进行操作.
dangyuluo
2017-10-19 04:53:37 +08:00
不适合 Restful 的地方不要强上啊。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/398767

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX