用户登录的详细流程(一)
**
用户登录的详细流程
**
**
1.流程概述
**
(1)首先在进行用户登录的时候,要进行一些必要的准备工作。
比如说要对用户登录表进行设计。
一般是userId,userName,phone,password,salt,remark等等。
通常数据库存储的密码是md5进行加密的密文,但也不能直接对登录密码进行md5加密,然后存在数据库中。这样的密文用浏览器上的解密工具很容易就被破解了。一般是用加密盐salt和用户的密码一起加密,而这个salt本质上是随机数。
同样也需要设置加密规则,是怎么加密,是密码+salt一起加密,还是其他的加密方法。
加密方法1(hutool工具包里面的util中secureUtil类中方法)
String md5Password = SecureUtil.md5(data);//data就是进行加密的数据
加密方法2(使用Spingframework自带的DigestUtils)
String pwd= DigestUtils.md5DigestAsHex(user.password.getBytes())//user.password 就是对应的需要加密的密码
加密方法3(使用commons-code中digest包中的DigestUtils类的方法)
String pwd= DigestUtils.md5Hex(data)//data是需要加密的密码
可以选择以上三个代码结合加密规则进行密码的md5加密。
然后把已经多次加密的密码存入数据库中。
(2)用户输入密码登录
可以直接把密码明文传入后台,然后按照加密的规则进行加密,然后和数据库的密码进行比较。
也可以让前端按照加密规则对明文直接加密好,后台直接把接收的数据和数据库进行对比。
(3)通过token令牌进行验证
如果对比密码是正确的,后台返回token(使用jwtUtil进行设置,token里面包含用户主键比如userid或者其他的)
然后前端把token存储起来,每次向前端请求数据必须带着token,然后后端根据带来的token进行对比和时效校验,如果正确在把数据返回。
**
2.总结
**
token的设置各种各样,而且后端的token校验也比较复杂,同时因为登录的用户权限不一致,还需要使用拦截器对请求进行拦截,进一步保证数据安全。关于这三块,等我具体了解清楚在进行记录。
用户登录的详细流程(一)相关推荐
- 用户登录的详细流程(三)Shiro框架
用户登录的详细流程(三)Shiro框架 Shiro框架是一个功能强大的java安全框架,执行身份验证,授权,加密和会话处理. ** 1.核心架构 Authentication (认证):用户身份认证- ...
- web项目中用户登录的具体流程
一个登录的具体流程: 1.前端发送公钥的请求. 2.后台生产公钥私钥对,将公钥返回前端,私钥保存到session中. 3.前端拿到公钥后,对用户输入的密码进行md5加密,然后在对(md5加密后的密码+ ...
- Java用户登录验证系统流程
前言 本文通过图示及代码的方式介绍用户登录流程及技术实现,内容包括用户登录,用户验证,如何获取操作用户的信息以及一些黑名单及匿名接口如何免验证相关的实现. 结合网关相关知识食用更佳 业务图解 对于用户 ...
- 用户访问网站详细流程
一.DNS解析 当我们把这个网址输入到浏览器并回车之后,首先第一步会检查客户端本地的hosts和DNS缓存,客户端的DNS缓存,检查完之后,因为第一次请求一般本地的DNS缓存是没有的,一般这个host ...
- 如何在不跳转的情况下实现用户登录
如何在不跳转的情况下实现用户登录 本文详细介绍拦截Response.Redirect的跳转并转换为Js的跳转,有一个很常见的需求,某个页面需要用户登录才能访问,或者某个操作需要用户登录 这就需要 ...
- 淘淘商城第96讲——单点登录之用户登录
我们先来看下用户登录流程图,如下图所示.用户登录涉及到三个部分,第一个部分是淘淘商城前台工程,第二个部分是单点登录服务,第三个部分是Redis服务.具体流程下图已经说的很明白了,我就不再啰嗦一遍了,相 ...
- 安装ubuntu系统操作系统详细流程、ubuntu管理包命令apt和dpkg命令详细说明、一键部署openstack环境、DBeaver下载驱动报错和登录提示RSA public key.. 解决方法
文章目录 安装ubuntu操作系统 安装vmware,我这的版本是16 . 创建虚拟机 设置网络.[你没有啥特殊需求,忽略该步骤] 开启处理器虚拟化 开始安装ubuntu系统 配置sshd和修改roo ...
- 【安卓SDK学习之anyChatSDK】 1_1 实现用户登录和房间进出(根据官方HelloAnyChat的demo整理的简要的开发流程)
AnyChat SDK是一套多媒体即时通讯平台库,只需要几个简单的API调用,即可实现多个用户之间的语音.视频.文字交互.AnyChat支持"一对一"."一对多" ...
- CAS单点登录原理(包含详细流程,讲得很透彻,耐心看下去一定能看明白!)
一.CAS简介和整体流程 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目.CAS ...
最新文章
- define 双引号 其他宏_当年宏语言不受欢迎?背后的原因你知道吗?
- aac蓝牙编解码协议_最新的真无线蓝牙耳机选购指南
- HTML5开发都能干什么?从事哪些岗位?
- 树形结构:寻找共同祖先
- Oracle的resouce、unlimited tablespace 及如何把数据导入不同的表空间
- jq之省市区级联插件
- SQL Server2008创建约束图解 唯一性约束
- Intel 64/x86_64/IA-32/x86处理器 - 指令格式(5) - 8086/16位指令寻址字节
- 带父节点的平衡二叉树_平衡二叉树的左右旋以及双旋转的图文详解
- Elasticsearch的javaAPI之facet,count,delete by query
- 【转载】GitHub详细教程
- 使用itertools建立词表
- glassfish linux,使用glassfish在linux上的部署网站
- 来看看你踩坑没有,新手做自媒体却没有收益?原因都在这5点
- TiDB -- TiDB CDC POC 测试
- 程序员的十种搞笑级别
- shp、tif文件坐标系转换
- iOS开发笔记(IOS7回归)
- DSP28335学习笔记-产生PWM波 ——从应用角度出发
- c语言长方体体积float,如何在C语言中实现长方体体积的计算?
热门文章
- Javascript权威指南看书笔记
- Java8中Stream的学习以及实际使用教程
- ChatGPT - 使用chatgpt + mindshow 快速生成PPT
- SQL游标的分析讲解
- 会议报道丨心语心“悦”——抑郁症诊疗进展“大咖”谈(三)
- CSS中的列表样式与表格样式
- 动态规划示例汇总-Java版(组合硬币、跳台阶、最小路径和、最长递增子序列、最长公共子序列、01背包问题、最小编辑代价)
- 如何让小米手机其中一个应用一直保持wifi连接设置
- 树莓派做 wifi 热点
- C++扬帆远航——8(张三李四,等差数列)