1.2-获取Access token
请求URL
/authorization-server/oauth/token
请求方式
- POST
返回类型
- JSON
请求头(HTTP Basic)
Authorization:Basic + client_id:client_secret
的 base64 加密字符串
属性 | 必填 | 描述 |
---|---|---|
client_id | Y | 客户端 id |
client_secret | Y | 客户端密码 |
请求参数
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
grant_type | String | Y | 获取 access_token 填写 client_credentials |
返回结果
属性 | 类型 | 说明 |
---|---|---|
access_token | String | 表示访问令牌 |
token_type | String | 表示令牌类型 |
expires_in | int | 表示过期时间,单位为秒 |
refresh_token | String | 表示更新令牌,用来获取下一次的访问令牌 |
scope | String | 权限范围,如果有,则与客户端申请的范围一致 |
获取 token 示例代码
调用代码
@Test
public void getToken() throws Exception {
BasicCredentialsProvider provider = new BasicCredentialsProvider();
//USER_NAME,PASSWORD由鑫业态提供客户的账号和密码
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(USER_NAME, PASSWORD);
provider.setCredentials(AuthScope.ANY, credentials);
CloseableHttpClient client =
HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
HttpPost post =
new HttpPost("https://{domain}/authorization-server/oauth/token");
List<BasicNameValuePair> list = new ArrayList<>();
list.add(new BasicNameValuePair("scope","read"));
list.add(new BasicNameValuePair("grant_type","client_credentials"));
StringEntity stringEntity = new UrlEncodedFormEntity(list, "utf-8");
post.setEntity(stringEntity);
CloseableHttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("响应状态码:" + statusCode);
String context = EntityUtils.toString(entity, "utf-8");
System.out.println("响应内容:" + context);
client.close();
response.close();
}
输出结果
响应状态码: 200
响应内容:{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcmluY2lwYWwiOnsiaWQiOjEsInVzZXJuYW1lIjoiYWRtaW4iLCJ0eXBlIjoiMSIsImNoaW5lc2VOYW1lIjoi5bmz5Y-w566h55CG5ZGYIiwicGhvbmUiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVUaW1lIjpudWxsLCJ1cGRhdGVUaW1lIjpudWxsLCJlbmFibGVkIjp0cnVlLCJwYXNzd29yZCI6IiQyYSQxMCRqaTVLeVhQREh6NmZlZ3hKY05oeTl1SWRORkxmODJLQVBrVUw3LjE2NHJTcVpOWXBWbVJ3SyIsImFjY291bnROb25FeHBpcmVkIjp0cnVlLCJhY2NvdW50Tm9uTG9ja2VkIjp0cnVlLCJjcmVkZxbxcv987bx90xcvbGlyZWQiOnRydWUsImF1dGhvcml0aWVzIjpbXSwib3JnRFRPIjp7ImlkIjoxLCJjb21wYW55TmFtZSI6bnVsbCwiY29tcGFueUNvZGUiOm51bGwsImNyZWRpdENvZGUiOm51bGwsInRyYWRlIjpudWxsLCJzZWxsZXJJZCI6bnVsbCwfdsgfgdfkIjpudWxsLCJyYXRlIjpudWxsLCJjcmVhdGVUaW1lIjpudWxsLCJ0eXBlIjoiMSIsImVuYWJsZSI6dHJ1ZSwidXNlcm5hbWUiOm51bGwsInBhc3N3b3JkIjpudWxsLCJjb21wYW55SWQiOm51bGwsIm9yZ0NvZGUiOm51bGwsIm9yZ05hbWUiOiLpkavkuJrmgIHlubPlj7DmnLrmnoQifSwidXNlckluZm9EVE8iOnsidXNlcm5hbWUiOiJhZG1pbiIsInVzZXJUeXBlIjoiMSIsImNoaW5lc2VOYW1lIjoi5bmz5Y-w566h55CG5ZGYIiwib3JnSWQiOjEsIm9yZ05hbWUiOiLpkavkuJrmgIHlubPlj7DmnLrmnoQiLCJvcmdUeXBlIjoiMSIsInBob25lIjpudWxsLCJlbWFpbCI6bnVsbH19LCJzY29wZSI6WyJyZWFkIl0sImV4cCI6MTU4MjU0MTkwOCwianRpIjoiYjEyZjViMWQtZjQ5Yy00NDI4LWIzMDMtYWRlYWE5NDNjM2QxIiwiY2xpZW50X2lkIjoiYWRtaW4ifQ.0vt90FUxncfdfhn7ipnYkMeJURgE_TZud57toZYOeMk","token_type":"bearer","expires_in":7199,"scope":"read"}