1.2-获取Access token
采用标准oauth2的client_credentials模式
请求URL
/authorization-server/oauth/token?grant_type=**&client_id=**&client_secret=**
请求方式
- POST
返回类型
- JSON
请求参数
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
grant_type | String | Y | 获取 access_token 填写 client_credentials |
client_id | String | Y | 客户端 id |
client_secret | String | Y | 客户端密码 |
返回结果
属性 | 类型 | 说明 |
---|---|---|
access_token | String | 表示访问令牌 |
token_type | String | 表示令牌类型 |
expires_in | int | 表示过期时间,单位为秒 |
scope | String | 权限范围,如果有,则与客户端申请的范围一致 |
获取 token 示例代码
调用代码
@Test
public void getToken() throws Exception {
RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, Object> formParameters = new LinkedMultiValueMap<String, Object>();
formParameters.add("grant_type", "client_credentials");
formParameters.add("client_id", "你的客户端id");
formParameters.add("client_secret", "你的客户端密码");
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON_UTF8));
URI uri = UriComponentsBuilder
.fromUriString("你访问的环境/authorization-server/oauth/token").build().toUri();
RequestEntity<?> request = new RequestEntity(formParameters, headers, HttpMethod.POST,
uri);
ResponseEntity<?> response;
response = restTemplate.exchange(request, Object.class);
System.out.println(response.getBody());
}
输出结果
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcmluY2lwYWwiOnsiaWQiOjEsInVzZXJuYW1lIjoiYWRtaW4iLCJ0eXBlIjoiMSIsImNoaW5lc2VOYW1lIjoi5bmz5Y-w566h55CG5ZGYIiwicGhvbmUiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVUaW1lIjpudWxsLCJ1cGRhdGVUaW1lIjpudWxsLCJlbmFibGVkIjp0cnVlLCJwYXNzd29yZCI6IiQyYSQxMCRqaTVLeVhQREh6NmZlZ3hKY05oeTl1SWRORkxmODJLQVBrVUw3LjE2NHJTcVpOWXBWbVJ3SyIsImFjY291bnROb25FeHBpcmVkIjp0cnVlLCJhY2NvdW50Tm9uTG9ja2VkIjp0cnVlLCJjcmVkZxbxcv987bx90xcvbGlyZWQiOnRydWUsImF1dGhvcml0aWVzIjpbXSwib3JnRFRPIjp7ImlkIjoxLCJjb21wYW55TmFtZSI6bnVsbCwiY29tcGFueUNvZGUiOm51bGwsImNyZWRpdENvZGUiOm51bGwsInRyYWRlIjpudWxsLCJzZWxsZXJJZCI6bnVsbCwfdsgfgdfkIjpudWxsLCJyYXRlIjpudWxsLCJjcmVhdGVUaW1lIjpudWxsLCJ0eXBlIjoiMSIsImVuYWJsZSI6dHJ1ZSwidXNlcm5hbWUiOm51bGwsInBhc3N3b3JkIjpudWxsLCJjb21wYW55SWQiOm51bGwsIm9yZ0NvZGUiOm51bGwsIm9yZ05hbWUiOiLpkavkuJrmgIHlubPlj7DmnLrmnoQifSwidXNlckluZm9EVE8iOnsidXNlcm5hbWUiOiJhZG1pbiIsInVzZXJUeXBlIjoiMSIsImNoaW5lc2VOYW1lIjoi5bmz5Y-w566h55CG5ZGYIiwib3JnSWQiOjEsIm9yZ05hbWUiOiLpkavkuJrmgIHlubPlj7DmnLrmnoQiLCJvcmdUeXBlIjoiMSIsInBob25lIjpudWxsLCJlbWFpbCI6bnVsbH19LCJzY29wZSI6WyJyZWFkIl0sImV4cCI6MTU4MjU0MTkwOCwianRpIjoiYjEyZjViMWQtZjQ5Yy00NDI4LWIzMDMtYWRlYWE5NDNjM2QxIiwiY2xpZW50X2lkIjoiYWRtaW4ifQ.0vt90FUxncfdfhn7ipnYkMeJURgE_TZud57toZYOeMk","token_type":"bearer","expires_in":7199,"scope":"read write"}