在postman
中,我们可以轻松获取令牌,可以在another
api header
中使用authorization
。如何使用放心的方式在rest API中获取授权令牌?有可能吗?
{
"status_code": 201,
"status": "success",
"results": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImJpdGh5QGdtYWlsLmNvbSIsImVtYWlsIjoiYml0aHlAZ21haWwuY29tIiwidXNlcl9pZCI6MywiZXhwIjoxNDkxODk2MjkwfQ.obAP1k8ObcyxLTHjQ3fP-9otvQAZNC0wM3TVoBXDEmE",
"user_type": "employer"
},
"errors": null,
"message_code": "sc_vw_user_login_1",
"message": "Login successful."
}
答案 0 :(得分:0)
除上述内容外,如果您还需要提及grant_type以及简单凭据,则可以使用以下示例来实现相同目的。下面的示例假设您使用的是client_credentials grant_type。您也可以将其放在Junit测试的@Before函数中
String response =
given().port(9090)
.auth().basic("clientId", "secret")
.basePath("/auth")
.contentType("multipart/form-data")
.multiPart("grant_type", "client_credentials")
.when()
.post("/oauth/token")
.asString();
JsonPath jsonPath = new JsonPath(response);
accessToken = jsonPath.getString("access_token");
答案 1 :(得分:-2)
正如Olaia所说,您需要阅读有关如何提出有关堆栈溢出问题的文档。
无论如何要回答你的问题,你可以参考以下步骤
`String response =
given()
.parameters("username", username, "password", password)
.auth()
.preemptive()
.when()
.post("/oauth/token")
.asString();
JsonPath jsonPath = new JsonPath(response);
accessToken = jsonPath.getString("access_token");`
然后在随后的请求中,您将在标题
中传递相同的accessTokengiven()
.auth().oauth2(accessToken)
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
.expect()...