注
本博客介绍前后端分离项目的完整接入oauth的流程,本博客使用github来示范,因为github注册oauth应用无须审核,微信审核特别麻烦,并且个人用户无法注册
1 oauth2
1.1 典型应用场景
1. 社交帐号登录应用,比如使用微信、微博登录其它应用
2. 从第三方获取用户资料比如:手机号、邮箱、头像等
3. 从第三方获取业务数据,比如:通过自己的系统想从京东获取订单
原创2022年4月27日大约 6 分钟
注
本博客介绍前后端分离项目的完整接入oauth的流程,本博客使用github来示范,因为github注册oauth应用无须审核,微信审核特别麻烦,并且个人用户无法注册
1. 社交帐号登录应用,比如使用微信、微博登录其它应用
2. 从第三方获取用户资料比如:手机号、邮箱、头像等
3. 从第三方获取业务数据,比如:通过自己的系统想从京东获取订单
今天看Securfity的源码,其中org.springframework.security.config.annotation.web.builders.HttpSecurity
类的UML看着很奇怪,如下图所示,命名其父类和父接口都实现过SecurityBuilder,为什么自己要再次实现呢?
一个系统一般都会有用户角色权限相关的概念,用户需要登录系统并且拥有相应的权限后才能访问对应的资源。
也就是说,用户登录(认证)成功后,会获得此用户拥有的权限,用户在去访问资源时,系统会校验其拥有的权限是否可以访问这个资源。
SSO(SingleSignOn)的出现是为了解决多系统认证的问题的,这里特别强调一下,它是解决认证问题的。就是通过用户的一次性鉴别登录,当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。
该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。