# oauth2Demo **Repository Path**: qiang_zz/oauth2Demo ## Basic Information - **Project Name**: oauth2Demo - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-05-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # oauth2Demo # 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 ## 1. authorization_code * 申请code ``` http://localhost:8080/oauth/authorize?response_type=code&scope=read write&client_id=curl-client&redirect_uri=http://www.baidu.com&state=b375bc2b-25f7-4dce-9b36-5f9e2d20bda1 ``` * 登录 * 是否允许 * 返回code ``` http://www.baidu.com/?code=kG4F2N&state=b375bc2b-25f7-4dce-9b36-5f9e2d20bda1 ``` * 申请access_token ``` curl -X POST http://localhost:8080/oauth/token -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=curl-client&client_secret=client-secret&grant_type=authorization_code&code=kG4F2N&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:8080/user/ping -H "Authorization: Bearer 30626e87-761f-410c-9497-84b29d310dd7" ``` ## 2. password * 申请access_token ``` curl -X POST http://localhost:8080/oauth/token -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=password&scope=read%20write&client_id=curl-client&client_secret=client-secret&username=nangzi&password=nangzi" ``` * 返回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:8080/user/ping -H "Authorization: Bearer 9ac3fe0f-f380-4149-8fca-19a72374365d" ```