# springboot-oauth2-server **Repository Path**: gitnext/springboot-oauth2-server ## Basic Information - **Project Name**: springboot-oauth2-server - **Description**: 基于 Spring Boot 开发的 OAuth 认证服务器 - **Primary Language**: Java - **License**: Artistic-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 226 - **Created**: 2022-03-25 - **Last Updated**: 2022-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot Oauth2-master **数据库脚本在项目中** Oauth2支持的授权方式目前有5类 | **GRANT_TYPE** | **Description** | |:-----------------|:------------------------------------------------------------------------| |authorization_code|授权码模式(即先登录获取code,再获取token) [最常用] | |password |密码模式(将用户名、密码传过去,直接获取token) [适用于移动设备] | |client_credentials|客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向'服务端'获取资源) | |implicit |简化模式(在redirect_uri的Hash传递token,客户端运行在浏览器中,如JS、Flash) | |refresh_token |更新access_token | [调试参数文档](https://docs.apipost.cn/preview/270483153cc63a0f/3a98e8f82135eb25)| **点击调试参数文档 可直接调试--强烈建议点开,里面参数好的文档和接口参数** ## 1. authorization_code * 使用浏览器复制下面链接->申请code ``` http://localhost:9000/oauth/authorize?response_type=code&scope=read write&client_id=book&redirect_uri=http://www.baidu.com&state=b375bc2b-25f7-4dce-9b36-5f9e2d20bda1 ``` * 进入权限选择页面登录 用户名 wang 密码 wang * 是否允许 * 返回code ![登录页面](https://images.gitee.com/uploads/images/2021/0603/153654_c67b9ef0_1078728.png "屏幕截图.png") ![授权页面](https://images.gitee.com/uploads/images/2021/0603/154443_e90b2832_1078728.png "屏幕截图.png") * 登录后返回code 码用来获取token ``` http://www.baidu.com/?code=kG4F2N&state=b375bc2b-25f7-4dce-9b36-5f9e2d20bda1 ``` ![返回code码](https://images.gitee.com/uploads/images/2021/0603/154511_f3940060_1078728.png "屏幕截图.png") * 得到code码 作为参数,申请access_token(post请求) ``` http://localhost:9000/oauth/token?client_id=book&client_secret=book&grant_type=authorization_code&code=nFXYw1&redirect_uri=http://www.baidu.com ``` * 返回access_token ``` {"access_token":"30626e87-761f-410c-9497-84b29d310dd7","token_type":"bearer","refresh_token":"0843fbec-20e3-4802-93a0-357488403924","expires_in":29,"scope":"read write"} ``` * 请求资源 ``` curl http://localhost:8000/book/classical -H "Authorization: Bearer 30626e87-761f-410c-9497-84b29d310dd7" ``` ## 2. password * 申请access_token ``` curl -X POST http://localhost:9000/oauth/token -H "Accept: application/json" -d "grant_type=password&scope=read%20write&client_id=curl-client&client_secret=client-secret&username=nangzi&password=nangzi" ``` ![password获取token](https://images.gitee.com/uploads/images/2021/0603/154855_b6b9c392_1078728.png "屏幕截图.png") * 返回access_token ``` {"access_token":"9ac3fe0f-f380-4149-8fca-19a72374365d","token_type":"bearer","refresh_token":"0843fbec-20e3-4802-93a0-357488403924","expires_in":29,"scope":"read write"} ``` * 请求资源 ``` curl http://localhost:8000/book/classical-H "Authorization: Bearer 9ac3fe0f-f380-4149-8fca-19a72374365d" ``` ## 3. client_credentials * 申请access_token ``` curl -X POST http://localhost:9000/oauth/token -H "Accept: application/json" -d "grant_type=client_credentials&scope=read%20write&client_id=curl-client&client_secret=client-secret" ``` ![client_credential获取token](https://images.gitee.com/uploads/images/2021/0603/154939_9d4f7fd3_1078728.png "屏幕截图.png") * 返回access_token ``` {"access_token":"904953fc-f446-49f3-9258-06d0f6cfba5b","token_type":"bearer","expires_in":29,"scope":"read write"} ``` * 请求资源 ``` curl http://localhost:8000/book/classical -H "Authorization: Bearer 904953fc-f446-49f3-9258-06d0f6cfba5b" ``` ## 4. implicit `是否需要登录待确认` * 请求access_token ``` http://localhost:9000/oauth/authorize?response_type=token&scope=read write&client_id=book&client_secret=book&redirect_uri=http://www.baidu.com&state=b375bc2b-25f7-4dce-9b36-5f9e2d20bda1 ``` ![implicit](https://images.gitee.com/uploads/images/2021/0603/155050_21a8fb28_1078728.png "屏幕截图.png") * 登录 * 是否允许 * 返回access_token ``` http://www.baidu.com/#access_token=aa7779b0-b98e-4739-b0d7-922a811ed134&token_type=bearer&state=b375bc2b-25f7-4dce-9b36-5f9e2d20bda1&expires_in=29 ``` * 请求资源 ``` curl http://localhost:8000/book/classical -H "Authorization: Bearer aa7779b0-b98e-4739-b0d7-922a811ed134" ``` ## 5. refresh_token * 请求refresh_token ``` curl -X POST http://localhost:9000/oauth/token -H "Accept: application/json" -d "grant_type=refresh_token&refresh_token=0843fbec-20e3-4802-93a0-357488403924&client_id=curl-client&client_secret=client-secret" ``` * 返回access_token ``` {"access_token":"6aa17ed5-e684-4dfa-90a8-61b2ad7c7615","token_type":"bearer","refresh_token":"0843fbec-20e3-4802-93a0-357488403924","expires_in":29,"scope":"read write"} ``` ![access_token](https://images.gitee.com/uploads/images/2021/0603/155201_27fc5388_1078728.png "屏幕截图.png") * 请求资源 ``` curl http://localhost:8000/book/classical -H "Authorization: Bearer 6aa17ed5-e684-4dfa-90a8-61b2ad7c7615" ```