# 搭建OAuth2-Server
---
### 1、准备工作
首先修改hosts文件`(C:\windows\system32\drivers\etc\hosts)`,添加以下IP映射,方便我们进行测试:
``` url
127.0.0.1 sa-oauth-server.com
127.0.0.1 sa-oauth-client.com
```
### 2、引入依赖
创建SpringBoot项目 `sa-token-demo-oauth2-server`(不会的同学自行百度或参考仓库示例),添加pom依赖:
``` xml
应用 " + clientId + " 请求授权:" + scope + "
" + "请确认: 确认授权
" + "确认之后刷新页面
"; return msg; }) ; } // 全局异常拦截 @ExceptionHandler public SaResult handlerException(Exception e) { e.printStackTrace(); return SaResult.error(e.getMessage()); } } ``` 注意:在`setDoLoginHandle`函数里如果要获取name, pwd以外的参数,可通过`SaHolder.getRequest().getParam("xxx")`来获取 3、创建启动类: ``` java /** * 启动:Sa-OAuth2 Server端 */ @SpringBootApplication public class SaOAuth2ServerApplication { public static void main(String[] args) { SpringApplication.run(SaOAuth2ServerApplication.class, args); System.out.println("\nSa-Token-OAuth Server端启动成功"); } } ``` 启动项目 ### 4、访问测试 1、由于暂未搭建Client端,我们可以使用Sa-Token官网作为重定向URL进行测试: ``` url http://sa-oauth-server.com:8001/oauth2/authorize?response_type=code&client_id=1001&redirect_uri=http://sa-token.dev33.cn/&scope=userinfo ``` 2、由于首次访问,我们在OAuth-Server端暂未登录,会被转发到登录视图  3、点击doLogin进行登录之后刷新页面,会提示我们确认授权  4、点击确认授权之后刷新页面,我们会被重定向至 redirect_uri 页面,并携带了code参数  4、我们拿着code参数,访问以下地址: ``` url http://sa-oauth-server.com:8001/oauth2/token?grant_type=authorization_code&client_id=1001&client_secret=aaaa-bbbb-cccc-dddd-eeee&code={code} ``` 将得到 `Access-Token`、`Refresh-Token`、`openid`等授权信息  测试完毕 ### 5、运行官方示例 以上代码只是简单模拟了一下OAuth2.0的授权流程,现在,我们运行一下官方示例,里面有制作好的UI界面 - OAuth2-Server端: `/sa-token-demo/sa-token-demo-oauth2-server/` [源码链接](https://gitee.com/dromara/sa-token/tree/dev/sa-token-demo/sa-token-demo-oauth2-server)