如何实现7天免登录效果

JiexC0la 2020-01-15 10:01:26
用户首次登录后,记住密码。后端在请求头里添加cookie,如下图所示


前端如何实现免登陆效果呢?如果前端把用户名密码保存在本地cookie,设置到期时间,用户输入网址的时候读取用户名密码,下发一次登录操作,感觉和后端没关系?如果不这样,后端又控制不了前端的路由。求大神帮我捋一捋这个免登陆的逻辑。
...全文
1485 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
JiexC0la 2020-01-21
  • 打赏
  • 举报
回复
引用 16 楼 風灬雲 的回复:
都免登陆了 还怕别人调用?这种事情后端就搞定了,前端不需要操作,只要拦截请求响应码,和后端约定登录过时返回什么码,前端拦截的时候判断 只要返回对应的响应码 就跳转到登录界面 cookie 让后端在登录成功的时候 响应头设置 最好加上 http-only
你的意思是,前端调用任意一个接口,和后端约定状态码去跳转
console.log( ) 2020-01-20
  • 打赏
  • 举报
回复
引用 14 楼 盼儿哥 的回复:
[quote=引用 2 楼 console.log( ) 的回复:] 防止请求接口被别人调用,可以把token放在header中
为什么呢?[/quote] 那无论是谁只要知道接口地址和参数都能发送请求,这种情况肯定是不允许的 只有拥有账号密码的可以
風灬雲 2020-01-20
  • 打赏
  • 举报
回复
都免登陆了 还怕别人调用?这种事情后端就搞定了,前端不需要操作,只要拦截请求响应码,和后端约定登录过时返回什么码,前端拦截的时候判断 只要返回对应的响应码 就跳转到登录界面 cookie 让后端在登录成功的时候 响应头设置 最好加上 http-only
盼儿哥 2020-01-18
  • 打赏
  • 举报
回复
引用 2 楼 console.log( ) 的回复:
防止请求接口被别人调用,可以把token放在header中
为什么呢?
cn00439805 2020-01-17
  • 打赏
  • 举报
回复
引用 10 楼 JiexC0la 的回复:
[quote=引用 9 楼 天际的海浪 的回复:][quote=引用 7 楼 JiexC0la 的回复:] [quote=引用 5 楼 天际的海浪 的回复:]前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端可以把 Token 存入 cookie 传给前端。 前端在每次请求的时候都会自动带上cookie,这样在服务端就可以直接在cookie中取Token了。 要设置有效期可以直接设置cookie的有效期。 也可以在服务端记录Token存入的时间,下次取Token时再计算与当前时间的差,这样更安全。
那我下次不输密码直接访问,怎么感知这个用户可以免密登录呢?[/quote] 前端在每次请求的时候都会自动带上cookie,这样在打开网页时服务端就可以直接在cookie中检测是否有Token了啊。[/quote]那服务端是要给前端返回个认证标示吗?不然前端怎么感知呢?服务端又控制不了路由跳转[/quote] 前后端cookie都是自动携带,即前端发送自动携带,后端返回自动携带。所以你要的给前端返回个认证标示,就在后端返回的自动携带的cookie里,至于你怎么获取数据,百度一下cookie基础
jio可 2020-01-17
  • 打赏
  • 举报
回复
一般网页都会做是否几日免登陆的确定操作,点击才会触发cookie记录token. 这种操作都是在自己的私人电脑或手机上做,设计隐私安全公共的设备都不会选择免登陆。
jio可 2020-01-17
  • 打赏
  • 举报
回复
登录后前端存储token到cookie里面并设置有效期,api同样设置有限期。在每次ajax请求的header里面加上token字段,api会去校验token是否有效是否过期。如果没问题返回正常数据,如果过期或token错误返回200和一个错误吗,web端做一个统一处理,如果返回这个错误码可以出一个提示让用户知道免登陆过期,然后把路由重定向到登录页面重新进行第二次免登陆流程
JiexC0la 2020-01-15
  • 打赏
  • 举报
回复
引用 1 楼 console.log( ) 的回复:
用户名和密码发给后端 获取token(这个后端可以设置有效期) 访问网页先判断是否有token,有的话判断是否有效
如何判断网页是否有token?我把token值存到本地,后端提供一个token查询接口,每次访问的时候,先查询token,如果和本地存储一样,就免登录?
console.log( ) 2020-01-15
  • 打赏
  • 举报
回复
防止请求接口被别人调用,可以把token放在header中
console.log( ) 2020-01-15
  • 打赏
  • 举报
回复
用户名和密码发给后端 获取token(这个后端可以设置有效期) 访问网页先判断是否有token,有的话判断是否有效
JiexC0la 2020-01-15
  • 打赏
  • 举报
回复
引用 9 楼 天际的海浪 的回复:
[quote=引用 7 楼 JiexC0la 的回复:] [quote=引用 5 楼 天际的海浪 的回复:]前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端可以把 Token 存入 cookie 传给前端。 前端在每次请求的时候都会自动带上cookie,这样在服务端就可以直接在cookie中取Token了。 要设置有效期可以直接设置cookie的有效期。 也可以在服务端记录Token存入的时间,下次取Token时再计算与当前时间的差,这样更安全。
那我下次不输密码直接访问,怎么感知这个用户可以免密登录呢?[/quote] 前端在每次请求的时候都会自动带上cookie,这样在打开网页时服务端就可以直接在cookie中检测是否有Token了啊。[/quote]那服务端是要给前端返回个认证标示吗?不然前端怎么感知呢?服务端又控制不了路由跳转
天际的海浪 2020-01-15
  • 打赏
  • 举报
回复
引用 7 楼 JiexC0la 的回复:
[quote=引用 5 楼 天际的海浪 的回复:]前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端可以把 Token 存入 cookie 传给前端。 前端在每次请求的时候都会自动带上cookie,这样在服务端就可以直接在cookie中取Token了。 要设置有效期可以直接设置cookie的有效期。 也可以在服务端记录Token存入的时间,下次取Token时再计算与当前时间的差,这样更安全。
那我下次不输密码直接访问,怎么感知这个用户可以免密登录呢?[/quote] 前端在每次请求的时候都会自动带上cookie,这样在打开网页时服务端就可以直接在cookie中检测是否有Token了啊。
console.log( ) 2020-01-15
  • 打赏
  • 举报
回复
引用 3 楼 JiexC0la 的回复:
[quote=引用 1 楼 console.log( ) 的回复:]用户名和密码发给后端 获取token(这个后端可以设置有效期) 访问网页先判断是否有token,有的话判断是否有效
如何判断网页是否有token?我把token值存到本地,后端提供一个token查询接口,每次访问的时候,先查询token,如果和本地存储一样,就免登录?[/quote] 网页跳转之前判断token是否存在,你跳转页面一般要发起请求,请求头携带token,若token无效,在拦截器中拦截
JiexC0la 2020-01-15
  • 打赏
  • 举报
回复
引用 5 楼 天际的海浪 的回复:
前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端可以把 Token 存入 cookie 传给前端。 前端在每次请求的时候都会自动带上cookie,这样在服务端就可以直接在cookie中取Token了。 要设置有效期可以直接设置cookie的有效期。 也可以在服务端记录Token存入的时间,下次取Token时再计算与当前时间的差,这样更安全。
那我下次不输密码直接访问,怎么感知这个用户可以免密登录呢?
JiexC0la 2020-01-15
  • 打赏
  • 举报
回复
引用 4 楼 囧 的回复:
get请求的时候读取是否有保存的cookie,有cookie就验证一下,通过后进入登录成功的页面,否则不做其它操作等用户post
怎么读取cookie,document.cookie?怎么检验?我不理解这个验证的过程
天际的海浪 2020-01-15
  • 打赏
  • 举报
回复
前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端可以把 Token 存入 cookie 传给前端。 前端在每次请求的时候都会自动带上cookie,这样在服务端就可以直接在cookie中取Token了。 要设置有效期可以直接设置cookie的有效期。 也可以在服务端记录Token存入的时间,下次取Token时再计算与当前时间的差,这样更安全。
2020-01-15
  • 打赏
  • 举报
回复
get请求的时候读取是否有保存的cookie,有cookie就验证一下,通过后进入登录成功的页面,否则不做其它操作等用户post

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧