用户登录体系

1.基于RSA体系生成公钥私钥

2.登录接口

identifier:对账号进行加密的结果
password:对密码进行加密的结果
加密逻辑:采用RSA加密算法(编码格式为UTF-8),使用公钥(前端调用/cloud-user/api/login/publicKey获取公钥)进行内容进行加密,后端使用私钥进行解密

3.登录逻辑

基于私钥进行RSA解密,获取解密后的用户密码,进行后台数据库校验等操作:

1).校验密码是否过期,注意数据库一开始存储的时候,数据需要基于salt做加密存储,然后再去做对比。
如:String encoded = EncodeUtil.getSHA256Str(password + account.getSalt());
2).账户是否被禁用
3).登录失败次数(可以放redis)
4).校验账号是否首次登录,建议修改密码。
5).生成sessionID: String sessionId = RandomUtil.getRandomString(64);
6). 创建cookie,
样例代码

Cookie cookie = new Cookie("xxx-session", sessionId);
cookie.setPath("/");
cookie.setMaxAge(60 * 60 * 24 * 30);
response.addCookie(cookie);

4.cookie

在Web开发中,Cookie广泛应用于用户身份验证和会话管理。以下是一些关于Cookie在用户密码体系中的用法的重要概念:

会话管理: 当用户登录网站时,服务器会创建一个用于标识用户的会话标识,并将其存储在Cookie中。这个会话标识在用户的所有请求中被发送到服务器,从而使服务器能够识别用户的身份。

身份验证: Cookie常常用于存储用户的身份验证令牌或票据。在用户成功登录后,服务器生成一个身份验证令牌,并将其存储在Cookie中。这样,用户在会话期间的每个请求都会携带这个令牌,服务器通过验证这个令牌来确认用户的身份。

记住我功能: 一些网站提供“记住我”选项,允许用户在关闭浏览器后保持登录状态。这通常通过在Cookie中存储一个长期有效的身份验证令牌来实现,使用户在下次访问网站时能够自动登录。

用户偏好设置: Cookie还常用于存储用户的偏好设置,例如语言选择、主题选择等。这样,用户在下次访问网站时可以保持他们的个性化设置。

购物车和会话状态: 在电子商务网站上,Cookie可以用于存储用户的购物车信息和会话状态,确保用户在浏览和购物过程中的连续性。

尽管Cookie在Web开发中有着广泛的应用,但也存在一些安全和隐私的考虑。例如,不适当使用Cookie可能导致跨站脚本攻击(XSS)或跨站请求伪造(CSRF)等安全问题。因此,开发人员在使用Cookie时需要注意安全最佳实践,如使用安全标志、限制Cookie的访问范围等。

5.用户-用户组-角色-权限,授权体系

你可能感兴趣的:(安全,登录)