用户认证篇

文章目录

  • 1. 如何生成用户认证token令牌
    • 1.1 相关表
    • 1.2 生成令牌逻辑
    • 1.3 最终结果
  • 2. 如何认证用户token令牌
    • 2.1 前端组件
    • 2.2 TokenAuthenticationFilter
    • 2.3 获得登陆用户
  • 3. 如何刷新用户认证 Token 令牌
    • 3.1 前端组件
    • 3.2 刷新令牌接口
  • 4. 如何模拟用户认证token令牌
  • 5. 如何实现URL需要登陆
    • 5.1 @PermitAll
    • 5.2 @PreAuthenticated
    • 5.3 每个项目自定义URL规则
    • 5.4 兜底

1. 如何生成用户认证token令牌

在这里插入图片描述

1.1 相关表

分为访问令牌access_token和刷新令牌refresh_token, 分别保存在system_oauth2_access_tokensystem_oauth2_refresh_token
访问令牌设置的过期时间一般比较短,通常为30min,刷新令牌可以设置很长时间,比如30天。访问令牌快过期,可以用刷新令牌获得一个新的访问令牌。

1.2 生成令牌逻辑

先生成刷新令牌,再生成访问令牌。

  • 入口
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 生成刷新令牌
    在这里插入图片描述
  • 生成访问令牌
    在这里插入图片描述

1.3 最终结果

在这里插入图片描述

2. 如何认证用户token令牌

在这里插入图片描述

2.1 前端组件

在前端yudao-ui-admin-vue3里面,看service.ts,拦截请求,在请求header添加访问token。
在这里插入图片描述

2.2 TokenAuthenticationFilter

在这里插入图片描述

2.3 获得登陆用户

SecurityFrameworkUtils的getLoginUser方法,2.2步骤当中已经设置在SecurityContext。

3. 如何刷新用户认证 Token 令牌

在这里插入图片描述

3.1 前端组件

在前端yudao-ui-admin-vue3里面,看service.ts,拦截响应。如果返回错误401,则刷新令牌。
在这里插入图片描述

3.2 刷新令牌接口

/system/auth/refresh-token
在这里插入图片描述
在这里插入图片描述

4. 如何模拟用户认证token令牌

在这里插入图片描述

http://127.0.0.1:48080/doc.html#/home
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 如何实现URL需要登陆

在这里插入图片描述
主要看YudaoWebSecurityConfigurerAdapter#filterChain。

5.1 @PermitAll

这个注解上JavaEE的标准。有该注解的URL免登陆。

  • 如何获得有该注解的URL。
    在这里插入图片描述
    在这里插入图片描述
  • 免登陆
    在这里插入图片描述

5.2 @PreAuthenticated

APP应用大部分不需要认证,比如在京东访问商品页面等,但有些场合上一定要登陆的,比如重置密码。
通过aop实现。
在这里插入图片描述

5.3 每个项目自定义URL规则

在这里插入图片描述
比如这个:

在这里插入图片描述

5.4 兜底

必须认证。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 输出链表的第一个和最后一个元素

使用 LinkedList 类的 linkedlistname.getFirst() 和 linkedlistname.getLast() 来获取链表的第一个和最后一个元素 完整代码 import java.util.LinkedList;public class Main {public static void main(String[] args) {LinkedList<String> lList new LinkedList<…

Java 删除链表中的元素

使用 clear() 方法来删除链表中的元素 完整代码 import java.util.*;public class Main {public static void main(String[] args) {LinkedList<String> lList new LinkedList<String>();lList.add("1");lList.add("8");lList.add("6&…

Java 获取链表的元素

使用 top() 和 pop() 方法来获取链表的元素 完整代码 import java.util.*;public class Main {private LinkedList list new LinkedList();public void push(Object v) {list.addFirst(v);}public Object top() {return list.getFirst();}public Object pop() {return list.…

Java 向量元素的索引值

使用 Collections 类的 sort() 方法对向量进行排序并使用 binarySearch() 方法来获取向量元素的索引值 完整代码 import java.util.Collections; import java.util.Vector;public class Main {public static void main(String[] args) {Vector v new Vector();v.add("X…

MySql数据库连接种类

查询分析器中执行&#xff1a; 建表table1,table2&#xff1a; create table table1(id int,name varchar(10)) create table table2(id int,score int) insert into table1 select 1,‘lli’ insert into table1 select 2,‘zhang’ insert into table1 select 4,‘wang’ i…

Java 删除集合中指定的元素

使用 Collection 类的 collection.remove() 方法来删除集合中的指定的元素 完整代码 import java.util.*;public class Main {public static void main(String [] args) { System.out.println( "集合实例!\n" ); int size;HashSet collection new HashSet ();St…

Java 查询IP

用 InetAddress 类的 InetAddress.getByName() 方法来获取指定主机&#xff08;网址&#xff09;的IP地址 完整代码 import java.net.InetAddress; import java.net.UnknownHostException;public class GetIP {public static void main(String[] args) {InetAddress address …

Java 端口宝典

在我们运行一些项目的时候经常会出现端口占用的情况&#xff0c;那么我们如何检测当前的端口是否已经被占用了呢&#xff1f; 代码如下 import java.net.*; import java.io.*;public class Main {public static void main(String[] args) {Socket Skt;String host "loc…

Java 获取远程文件的大小

我们应该如何获取远程文件的大小的呢&#xff1f; 代码如下 import java.net.URL; import java.net.URLConnection;public class Main {public static void main(String[] args) throws Exception {int size;URL url new URL("http://a3.att.hudong.com/14/75/01300000…

Java 爬取网页

我们使用 net.URL 类的 URL() 构造函数来抓取网页 代码如下 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.InputStreamReader; import java.net.URL;public class Main {public static void main(String[] arg…

Java 获取 URL响应头的日期信息

我们用 HttpURLConnection 的 httpCon.getDate() 方法来获取 URL响应头的日期信息 代码如下 import java.net.HttpURLConnection; import java.net.URL; import java.util.Date;public class Main{public static void main(String args[]) throws Exception {URL url new UR…

Java 获取 URL 响应头信息

我们如何获取指定 URL 的响应头信息呢&#xff1f; 代码如下 import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.Map; import java.util.Set;public class Main {public static void main(String[] args) throws IOExcepti…

Java 解析URL

使用 net.URL 类的 url.getProtocol() ,url.getFile() 等方法来解析 URL 地址 完整代码 import java.net.URL;public class Main {public static void main(String[] args) throws Exception {URL url new URL("http://www.baidu.com/html/html-tutorial.html");S…

MySql 服务名无效

当我们安装好MySql之后进行启动的时候&#xff0c;我们会发现提示我们服务名无效&#xff0c;那么我们应该如何解决这个问题呢&#xff1f; 如果出现了服务名无效我们要知道这是因为我们的MySql服务没有安装。 错误提示&#xff1a; 解决办法 1 . 进入MySql的安装目录的bin…

Navicat 连接Mysql 报错1251

我们在使用navicat链接mysql的时候有时会出现错误1251-Client does not support authentication protocol requested by server&#xff1b; 错误显示 解决办法 1 . 管理员方式打开cmd。 2.以root用户登录MySQL。命令&#xff1a;mysql -u root -p &#xff08; 注意&…

Git安装详细步骤

下载安装Git 1 . 下载Git&#xff0c; 官方下载地址&#xff1a;https://git-scm.com/download/win 根据自己的电脑选择32位或者64位操作系统进行下载。 2 . 等待下载完毕&#xff0c;双击进行安装。 3 . 选择软件安装目录&#xff0c;可以使用默认目录也可以指定安装目录。…

Git clone的使用方法

使用Git clone项目 1 . 首先我们要确保我们的电脑上已经安装Git。 桌面点击右键出现如下图所示的两个Git即Git已经安装。 2 . 在电脑的任意一个磁盘里新建一个本地文件夹作为clone项目的保存文件夹。 3 . 在码云上面打开我们要clone的项目。 4 . 点击克隆/下载按钮出现项目…

remote: Incorrect username or password ( access token )

remote: Incorrect username or password ( access token ) 在使用Git进行项目的clone的时候最后一步出现了这个错误&#xff0c;错误的意思是用户名或者密码不正确。 错误截图 解决办法 1 . 打开控制面板 &#xff0c;点击用户账户。 2 . 点击管理 Windows 凭据 3 . 找到…

Connection to @localhost failed. [08001] Could not create connection to database server. Attempt

Connection to localhost failed. [08001] Could not create connection to database server. Attempt 当我们使用IDEA的database连接Mysql数据库的时候会出现这个错误。 解决办法 首先要保证我们的路径账户密码啥的都没有问题。 在数据库路径后面添加 ?serverTimezoneGM…

IDEA通过Database连接MySql数据库

我们如何使用IDEA通过里面的Database连接MySQL数据库的呢&#xff1f; 详细步骤 1 . 打开我们的IDEA&#xff0c;右边的侧边栏有Database&#xff0c;点击Database。 2 . 点击 --> Data Source --> MySql。 3 . 填写MySql数据库的用户名和密码以及要链接的数据库名称…