扫码关注官方订阅号
求问网站个页面间切换时的保持登入是怎么实现的啊?
如果是存储cookiede的话,是存储用户名和密码?那样的话会不会不安全啊?
认证0级讲师
浏览器的请求中都带有cookie,将浏览器的cookie与对应session存储起来,当后续访问网站时再将cookie值对应的session信息取出,同时更新cookie,实现自动登录。现今大多数分布式网站为了保证各服务器的session统一,都会讲session存储在一个内存数据库中,例如redis,然后作为公共服务提供给所有应用服务器,此时做保持登入功能就非常方便,由于内存数据库会对sesssion做过期清除,所以只需要在做保持登入时和每次自动登录时延长该session信息的过期时间就行了
一般都是后台通过session校验的,登陆完以后,后台会在cookie里面加一个http-only的sessionId,每次跳转,后台会有一个拦截器之类的东西,检查session是否存在,是否过期
session
cookie
http-only
sessionId
后端的session只要服务器不重启、没到过期时间、就会跟你的cookie相连、达到你说的保持登入效果
你保存在 cookie 里面的数据可以用 类似 jwt(Json Web Token) 做加密处理后放在 cookie里面,然后就是一段加密信息,发送给服务器后,服务器端在用 jwt(Json Web Token) 做解密,就可以得到 当时的形式,
至于 jwt 自行百度
用session啊,PHP网站中保持登录状态的功能是怎么做的?希望对你有帮助
用cookie,把用户的token或者其他能做唯一识别的信息,比如用户的ID存入cookie,并设定时间,然后每次打开网站,先检测有没有这个cookie,没有就登录,有的话就拿这个ID去数据库取用户信息,名字啊,昵称啊,等等。
cookie一定要加密。
当然也可以用session,它更安全,而且可以让session入库,但是session调取肯定没有cookie快
可以把登录信息保存在数据库里 或者其他位置也行。当登录到期之后。自动调取库里的信息重新执行登录。或者干脆把登录的session保存。到期之后重复值
cookiei里设置HttpOnly脚本就无法获取信息
用session 将对应登录的用户username以及其他什么需要存储的信息存入session 中 比如:menus : req.session.menus,user : req.session.user,记得存储password的时候要加密 比如: insert into admin(name,password,role_name,privilege,description) values ('admin','7df0df52a127f43fa18a0831fb6b1262','SUPER_ADMIN',256,'XX管理员'); 上面这种加密方式 也就是 每注册一个用户 存入到数据库中的password都是经过加密的 这样你保存到session或者cookie中的时候都是没有问题的 以上用了n_user.password = encrypt.encrypt(n_user.password);这种加密方式
username
menus : req.session.menus,user : req.session.user,
password
insert into admin(name,password,role_name,privilege,description) values ('admin','7df0df52a127f43fa18a0831fb6b1262','SUPER_ADMIN',256,'XX管理员');
cooki
n_user.password = encrypt.encrypt(n_user.password);
依在下薄见我觉得session怎么说呢,只要涉及存密码就是不安全的比较妥善的办法我觉得是让后台返回给你一个uid(根据用户名生成的唯一标识)utoken(一个根据密码生成的令牌)将这些存到local中就可以了,一般来说比直接存储密码安全很多然后你通过是否uid和utoken是否存在来判断是否登陆过了,登陆过就直接跳转到首页
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
浏览器的请求中都带有cookie,将浏览器的cookie与对应session存储起来,当后续访问网站时再将cookie值对应的session信息取出,同时更新cookie,实现自动登录。
现今大多数分布式网站为了保证各服务器的session统一,都会讲session存储在一个内存数据库中,例如redis,然后作为公共服务提供给所有应用服务器,此时做保持登入功能就非常方便,由于内存数据库会对sesssion做过期清除,所以只需要在做保持登入时和每次自动登录时延长该session信息的过期时间就行了
一般都是后台通过
session校验的,登陆完以后,后台会在cookie里面加一个http-only的sessionId,每次跳转,后台会有一个拦截器之类的东西,检查session是否存在,是否过期后端的session只要服务器不重启、没到过期时间、就会跟你的cookie相连、达到你说的保持登入效果
你保存在 cookie 里面的数据可以用 类似 jwt(Json Web Token) 做加密处理后放在 cookie里面,然后就是一段加密信息,发送给服务器后,服务器端在用 jwt(Json Web Token) 做解密,就可以得到 当时的形式,
至于 jwt 自行百度
用session啊,PHP网站中保持登录状态的功能是怎么做的?希望对你有帮助
用cookie,把用户的token或者其他能做唯一识别的信息,比如用户的ID存入cookie,并设定时间,然后每次打开网站,先检测有没有这个cookie,没有就登录,有的话就拿这个ID去数据库取用户信息,名字啊,昵称啊,等等。
cookie一定要加密。
当然也可以用session,它更安全,而且可以让session入库,但是session调取肯定没有cookie快
可以把登录信息保存在数据库里 或者其他位置也行。当登录到期之后。自动调取库里的信息重新执行登录。或者干脆把登录的session保存。到期之后重复值
cookiei里设置HttpOnly脚本就无法获取信息
用
session将对应登录的用户
username以及其他什么需要存储的信息存入session中比如:
menus : req.session.menus,user : req.session.user,记得存储
password的时候要加密比如:
insert into admin(name,password,role_name,privilege,description) values ('admin','7df0df52a127f43fa18a0831fb6b1262','SUPER_ADMIN',256,'XX管理员');上面这种加密方式 也就是 每注册一个用户 存入到数据库中的
password都是经过加密的 这样你保存到session或者cookie中的时候都是没有问题的以上用了
n_user.password = encrypt.encrypt(n_user.password);这种加密方式依在下薄见
我觉得session怎么说呢,只要涉及存密码就是不安全的
比较妥善的办法我觉得是让后台返回给你一个
uid(根据用户名生成的唯一标识)
utoken(一个根据密码生成的令牌)
将这些存到local中就可以了,一般来说比直接存储密码安全很多
然后你通过是否uid和utoken是否存在来判断是否登陆过了,
登陆过就直接跳转到首页