十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章运用简单易懂的例子给大家介绍使用spring cloud oauth2 实现用户认证登录,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站基于分布式IDC数据中心构建的平台为众多户提供达州服务器托管 四川大带宽租用 成都机柜租用 成都服务器租用。OAuth3
OAuth3是一个关于授权的网络标准,他定制了设计思路和执行流程。OAuth3一共有四种授权模式:授权码模式(authorization code)、简化模式(implicit)、密码模式(resource owner password)和客户端模式(client credentials)。数据的所有者告诉系统同意授权第三方应用进入系统,获取这些数据。于是数据所有者生产了一个短时间内有效的授权码(token)给第三方应用,用来代替密码,供第三方使用。具体流程请看下图,具体的OAuth3介绍,可以参考这篇文章,写的很详细。(https://www.jb51.net/article/198292.htm)
Token
令牌(token)和密码(password)的作用是一样的,都可以进入系统获取资源,但是也有几点不同:
实现的功能
本篇介绍的是通过密码模式来实现单点登录的功能。
在微服务架构中,我们的一个应用可能会有很多个服务运行,协调来处理实际的业务。这就需要用到单点登录的技术,来统一认证调取接口的是哪个用户。那总不能请求一次,就认证一次,这么做肯定是不行的。那么就需要在认证完用户之后,给这个用户授权,然后发一个令牌(token),有效期内用户请求资源时,就只需要带上这个标识自己身份的token即可。
架构说明
认证中心:oauth3-oauth-server,OAuth3的服务端,主要完成用户Token的生成、刷新、验证等。
微服务:mzh-etl,微服务之一,接收到请求之后回到认证中心(oauth3-oauth-server)去验证。
代码实现
使用到的框架是java基础的spring boot 和spring-cloud-oauth3
认证中心:
1、引入需要的maven包
org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-oauth3 org.springframework.boot spring-boot-starter-data-redis org.springframework.boot spring-boot-starter-actuator