实现网站自动登陆,不用输账号密码,是前台控制还是后台,是怎么控制的?前端需要做什么操作么??

回答

结论:主导权在后端,前端配合。

假设用户账号是:xiaoming,密码是:123456。

一个简单的登录流程如下:(以web页面登录为例,为方便讲解,此处忽略技术细节,不考虑安全性问题)

第一次访问需要登录

浏览器:用户输入账号密码:xiaoming/123456服务器:收到用户的登录请求,校验用户账号密码成功。服务器:记录用户xiaoming的登录状态,比如往数据库里插入一条记录,用户名是xiaoming,登录有效期是1个月。
4、服务器:登录请求处理完成,请求返回浏览器,并告诉浏览器“请在本地存储login_name=xiaoming的cookie,且有效期为1个月”(key不一定是login_name)浏览器:将cookie “login_name=xiaoming” 存储到本地,设置有效期为1个月。

第二次自动登录

假设小明已经登录过网站,并且在1个月内容重新访问网站。

浏览器:向服务器发送请求(任意),同时带上之前存储的cookie。(http特性)服务器:收到浏览器的请求,获得cookie “login_name=xiaoming”。服务器:检索数据库,发现数据库里有xiaoming的登录记录,且还没过期。–> 证明小明处于登录状态

既然服务器检测到xiaoming处于登录状态,那么自然就不用重新登录了。

前端不需要做任何操作。

自动登陆是cookie实现的,如果之前登陆过并且cookie还没有过期,访问前端页面就会自动传输这个cookie给后端,后端会去识别这个cookie是否有效。

哪位仁兄踩了答案,请告诉我哪里有问题。谢谢。

最传统的方式就是cookie。

第一次登陆,如果记住密码, 则存储一个时效的cookie,QQ号码购买平台地图访问的时候如果是服务端渲染,则直接从服务端判断cookie是否存在和有效,然后生成session保存本次状态即可。

如果是前端渲染,则需要请求一次服务端。同样如果使用cookie的话,服务端判断和处理后,发回用户的登录状态或者未登录状态。

cookie的判断和验证都可以放在后端进行,前端没必要(不一定),但是也可以。

一般情况下,根据不同的网站架构也是不一样的. 如果是前端和后台分离.一般情况下都是前端将登陆信息缓存下.一旦失效就去后端发接口请求从新获取登陆后的信息.

这个需要前台和后台的共同的配合。
登录信息加密后保存在cookie中,后台拿到cookie值进行处理,来判断用户时候登录。

前端除了用cookie之外,还可以用localStorage来实现,把登录信息通过localStorage.setItem('key', 'value')来存到浏览器本地,还可以在登录信息对象增加一个过期时间的属性,控制自动过期。如果要清除登录状态,可以用localStorage.removeItem('key')。

cookie


更多相关文章

  1. css与javascript重难点,学前端,基础不好一切白费!
  2. 模态框 flex grid
  3. 制作简易模态框登录页面及flex与grid整理总结
  4. 浏览器输入域名网址访问后的过程详解
  5. Laravel 实现登录
  6. 动态分页制作及composer自动加载及第三方验证码使用
  7. 补0819作业:实现预处理与会话跟踪 及 登录防sql注入
  8. 实例演绎pdo在用户登录环节是怎么防sql注入及实战预处理与会话跟
  9. vue--SEO

随机推荐

  1. 用python分析1225万条淘宝数据,终于搞清楚
  2. GIL 已经被杀死了么?
  3. AQS之ReentrantReadWriteLock精讲分析上
  4. UNIX系列之AIX克隆系统盘
  5. 用鸿蒙开发AI应用(六)UI篇
  6. 用《矛盾论》来解读 Python
  7. 对比 C++ 和 Python,谈谈指针与引用
  8. PXE+kickstart无人值守装机
  9. 超全的pandas数据分析常用函数总结:下篇
  10. 小型的编程项目有哪些值得推荐?这本神书写