# Demo Spring Boot OAuth2 **Repository Path**: consolelog/oauth2 ## Basic Information - **Project Name**: Demo Spring Boot OAuth2 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-23 - **Last Updated**: 2022-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README = Demo Spring Boot OAuth2 大胃王 <253498229@qq.com, https://gitee.com/consolelog/oauth2> :icons: font :toc: left :toc-title: 目录 :source-highlighter: coderay :nofooter: :page-layout: docs == 准备 . 使用提供的SQL文件初始化MySQL数据库 . 启动 `authorization-server` 以及 `resource-server` 两个模块 . 然后使用node命令启动前台 `demo-frontend` 模块 . 浏览器访问 http://localhost:4200 进入应用 == 流程演示 === 访问公开接口 浏览器访问 http://localhost:4200 页面后,会自动跳转到公共页面,可以看到访问后台公开接口后返回的结果: `success` image::https://gitee.com/consolelog/oauth2/raw/master/docs/image/1.png[] === 未登录情况下访问私有接口 点击页面中的 `private` 按钮跳转到私有接口测试页面,可以看到: `没有权限` image::https://gitee.com/consolelog/oauth2/raw/master/docs/image/2.png[] === 账号密码方式登陆 点击 `密码方式登陆` 按钮进入登陆页面,输入用户名/密码进行登陆(测试用户:admin/admin、user/user) image::https://gitee.com/consolelog/oauth2/raw/master/docs/image/3.png[] 登陆admin用户之后会显示当前用户信息,同时会多出 `注销` 以及 `admin` 两个按钮。 注销按钮就是字面的注销功能,注销后会自动跳转到public页面 image::https://gitee.com/consolelog/oauth2/raw/master/docs/image/4.png[] 点击admin按钮会跳转到admin接口的测试页面,可以访问私有且只有admin才能访问的接口:`用户列表`。 image::https://gitee.com/consolelog/oauth2/raw/master/docs/image/5.png[] === code方式登陆 点击code方式登陆会跳转到认证中心的登陆页面 image::https://gitee.com/consolelog/oauth2/raw/master/docs/image/6.png[] 登陆成功后会跳转到用户信息页面,这里使用的是user用户,所以没有admin页面 image::https://gitee.com/consolelog/oauth2/raw/master/docs/image/7.png[] == 文件目录结构 * link:authorization-server[authorization-server: 认证服务器、认证中心] * link:resource-server[resource-server: 资源服务器、真实应用] * link:commons[commons: 公共模块] * link:demo-frontend[demo-frontend: 前端模块] * link:schema.sql[schema.sql: 测试库结构] * link:init-data.sql[init-data.sql: 测试数据] * link:docs[docs: 文档目录] == 说明 . 资源服务器就是实际开发的应用服务器。用户发送的(非公开)请求会事先交给认证中心进行身份校验,之后才会到达真实的接口内部 . code方式登陆可以实现多应用之间的单点登陆,所以一般常用这种方式。至于登陆页面的样式可以自行修改 . 如果不需要单点登陆功能,例如单应用的项目,则建议使用用户名密码的登陆方式,这样会更易于开发登陆页面 . init-data.sql中提供了两个测试用户:admin/admin、user/user . 后台实现了方法级的权限校验,也就是说user是访问不了用户列表这个接口的,这个接口只有admin权限才能访问 . 测试时自动通过了scope的校验,实际开发中可能需要自行设计用户界面 . 这个项目的所有代码仅用于学习和测试,作者不承担任何责任