实际应用中,Restful 如何保持用户登陆状态?
可以不保存。一般通过客户端传递 token 等参数进行身份验证,实现无状态的 API。
Restful说白了就是基于http协议的接口,http协议本身是无状态的,要想保持登陆状态与传统的web也是一样的。比如你可以公开一个接口登陆成功后把信息保持在内存里,并返回一个id给客户端,比如叫JSESSIONID,以后客户端访问其他接口通过传递JSESSIONID确定客户端登陆信息。
推荐极简的Restful框架 Resty 开发效率比ssh高了n倍,其中resty-security是极简的权限设计,非常小巧只有10个左右class文件,主要设计原理,是把用户名和session相关签名之后放入cookie,在用户刷新页面的时候再取出cookie的session相关,比对签名避免被串改,通过cookie里的数据获取用户的信息,设置到当前的session中,使用户处于登陆状态,cookie时效来保证session时效
可以通过token的方式,实现该功能,改变用户的状态,只用改变token的状态就可以了,可以单独设置一个字段,也可以设置在不同的状态下,设置不同的token值
个人理解:restful不必保持用户登录状态,只需要身份验证就可以,比如token认证。
但是无论是web开发,还是移动app开发,都需要有判断用户的登录状态,web叫做会话,用session储存。app的实现方法类似,只是把登录状态存到了客户端。
web的实现是这样的,如果需要用到restful api,那么在前端和restful之间加一个node做中间层,node调用restful接口获取数据,并创建session会话。所以session处理和判断用户登录状态是放在node这端的,而不是在restful中操作
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(5)
可以不保存。
一般通过客户端传递 token 等参数进行身份验证,实现无状态的 API。
Restful说白了就是基于http协议的接口,http协议本身是无状态的,要想保持登陆状态与传统的web也是一样的。
比如你可以公开一个接口登陆成功后把信息保持在内存里,并返回一个id给客户端,比如叫JSESSIONID,以后客户端访问其他接口通过传递JSESSIONID确定客户端登陆信息。
推荐极简的Restful框架 Resty 开发效率比ssh高了n倍,其中resty-security是极简的权限设计,非常小巧只有10个左右class文件,主要设计原理,是把用户名和session相关签名之后放入cookie,在用户刷新页面的时候再取出cookie的session相关,比对签名避免被串改,通过cookie里的数据获取用户的信息,设置到当前的session中,使用户处于登陆状态,cookie时效来保证session时效
可以通过token的方式,实现该功能,改变用户的状态,只用改变token的状态就可以了,可以单独设置一个字段,也可以设置在不同的状态下,设置不同的token值
个人理解:restful不必保持用户登录状态,只需要身份验证就可以,比如token认证。
但是无论是web开发,还是移动app开发,都需要有判断用户的登录状态,web叫做会话,用session储存。app的实现方法类似,只是把登录状态存到了客户端。
web的实现是这样的,如果需要用到restful api,那么在前端和restful之间加一个node做中间层,node调用restful接口获取数据,并创建session会话。所以session处理和判断用户登录状态是放在node这端的,而不是在restful中操作