003 Jwt登录流程图
用户\角色\权限
用户是一个基本的单位
用户和角色的关系是多对多,所以要有一张保存用户和角色关系的中间表
角色也不能直接决定这个用户能做什么操作,有哪些权限, 需要再关联权限表决定
角色和权限也是多对多的关系,也要有中间表
如果项目开发的权限比较全面,可能会出现临时用户权限关系表
关于单点登录
微服务的会话保持问题
1.我们在用户模块中登录,只是将用户信息保存在用户模块的session中,而这个session不会和其他模块共享
所以在我们访问订单模块或其他模块时,通过sessionid并不能获得在用户模块中登录成功的信息
这样就丢失的用户信息,不能完成业务
2.市面上现在大多使用JWT来实现微服务架构下的会话保持
也就是在一个服务器上登录成功后,微服务的其他模块也能识别用户的登录信息
这个技术就是**单点登录
单点登录解决方案
Session共享
这种方式的核心思想是将用户的登录信息共享给其他模块
适用于小型的,用户量不大的微服务项目

将登录成功的用户信息共享给Redis
其他模块根据sessionId获得Redis中保存的用户信息即可
- 这样做最大的缺点就是内存严重冗余,不适合大量用户的
微服务项目
JWT令牌
这种登录方式,最大的优点就是不占用内存

生成的JWT由客户端自己保存,不占用服务器内存
在需要表明自己用户身份\信息时,将JWT信息保存到请求头中发送请求即可
Jwt登录流程图

003 Jwt登录流程图的更多相关文章
- 自己设计的SSO登录流程图
这个图上不考虑安全加密.由于本身SSO流程图已经比較复杂了.可能还有问题,欢迎大家拍砖. 1.登录流程图: 2.退出流程图: 3.改进方面: 每一个应用登录后.直接将ticket写入session中, ...
- Django-rest_framework中利用jwt登录验证时,自定义返回凭证和登录校验支持手机号
安装 pip install djangorestframework-jwt 在Django.settings中配置 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATIO ...
- 前后端分离,简单JWT登录详解
前后端分离,简单JWT登录详解 目录 前后端分离,简单JWT登录详解 JWT登录流程 1. 用户认证处理 2. 前端登录 3. 前端请求处理 4. 后端请求处理 5. 前端页面跳转处理 6. 退出登录 ...
- 实战模拟│JWT 登录认证
目录 Token 认证流程 Token 认证优点 JWT 结构 JWT 基本使用 实战:使用 JWT 登录认证 Token 认证流程 作为目前最流行的跨域认证解决方案,JWT(JSON Web Tok ...
- jwt 登录
/* eslint-disable */ 'use strict'; const Controller = require('egg').Controller; const jwt = require ...
- CAS单点登录流程图
1.cas单点登录原理图 2.cas使用代理服务器流程图 3.cas和spring security集成流程图
- 使用JWT登录生成token
package com.example.demo.util; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import co ...
- Python开发篇——如何在Flask下编写JWT登录
首先,HTTP 是无状态的协议(对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息)--每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求 ...
- SpringBoot项目搭建 + Jwt登录
临时接了一个小项目,有需要搭一个小项目,简单记录一下项目搭建过程以及整合登录功能. 1.首先拿到的是一个码云地址,里面是一个空的文件夹,只有一个 2. 拿到HTTPS码云项目地址链接,在IDEA中cl ...
随机推荐
- vscode无法运行和调试使用了部分stl库的程序(无法定位程序输入点__gxx_personality_v0的一个解决方法)
一.起因 vscode 不能运行带有部分 stl 库的程序,编译不会报错,运行也不会报错但是也没有结果,调试的话会有下图中报错,如果没有string或者vector一切正常. 二.分析 cmd 中运 ...
- 调试F9/F10/F11/F8
这篇随笔记录来自于实现活动促销页弹幕过程学习: // 页面加载完初始化方法$(function () { GetCustList(); createBarrage(); }) // 某功能的初始化方法 ...
- pyhon对excel的xls与xlsx的读取,写入
import shutilimport osfrom openpyxl import load_workbookfrom xlutils.copy import copyimport win32com ...
- Java 14中对switch的增强,终于可以不写break了
面对这样的if语句,你是不是很难受呢? if (flag == 1) { log.info("didispace.com: 1"); } else if (flag == 2) { ...
- Web3.0应用程序架构
Web 3.0 应用程序(或"DApps")的架构与 Web 2.0 应用程序完全不同. 以博客园为例,这是一个简洁的博客网站,用户可以发布自己的内容并可以评论他人的内容进行互动. ...
- Mockito+Junit5单元测试
参考: https://segmentfault.com/a/1190000006746409 https://waylau.com/mockito-quick-start/ 1.引入依赖 下面这个最 ...
- windows 存储和切换 ip 配置
我的虚拟机用的是桥接模式,在公司使用时设置的是静态 ip,但网段和家里面的不一样,就导致在公司和家里,我需要频繁修改 ipv4 的配置以适应不同的网络环境 Simple-IP-Config 工具解决了 ...
- spring-boot rest controller 使用枚举作为参数,重写反序列化实现任意值转枚举类型
目录 BaseEnum MyEnum StringToEnumConverterFactory FormatterConfig DTO RestController 参考 BaseEnum packa ...
- EFCore常规操作生成的SQL语句一览
前言 EFCore的性能先不说,便捷性绝对是.Net Core平台下的ORM中最好用的,主要血统还百分百纯正. EFCore说到底还是对数据库进行操作,无论你是写Lamda还是Linq最后总归都是要生 ...
- 203. Remove Linked List Elements - LeetCode
Question 203. Remove Linked List Elements Solution 题目大意:从链表中删除给定的数 思路:遍历链表,如果该节点的值等于给的数就删除该节点,注意首节点 ...