여기서는 컨텍스트를 혼합 할 수 있습니다.
제공된 코드는 Java SDK를 직접 사용하고 Stormpath Spring Boot 통합과 같은 통합을 사용하지 않을 때 필요한 수동 코드 유형과 같습니다.
Stormpath Default Spring Boot Starter를 사용할 때 자동으로 인증을 받고 쿠키를 설정할 수있는 끝 점이 있습니다.
예를 들어 /login
엔드 포인트가 있습니다. 당신은 이런 식으로 뭔가 보이는 로그인 모델을 다시 얻을 것이다
curl localhost:8080/login
: 당신이 당신의 예제 응용 프로그램을 불 경우
것은, 당신은에 갈 수 있어야한다
{
"form": {
"fields": [
{
"name": "login",
"label": "Username or Email",
"placeholder": "Username or Email",
"required": true,
"type": "text"
},
{
"name": "password",
"label": "Password",
"placeholder": "Password",
"required": true,
"type": "password"
}
]
}
}
을 당신 POST를 사용하여 인증 할 수 있습니다.
curl -v -H "Content-Type: application/json" -X POST \
-d '{"login": "<email>", "password": "<password>"}' \
http://localhost:8080/login
이 같은 응답 : 응답에 포함 된
> POST /login HTTP/1.1
> Host: localhost:8080
< HTTP/1.1 200
< Set-Cookie: access_token=eyJraWQiOiJSOTJTQkhKQzFVNERBSU1HUTNNSE9HVk1YIiwic3R0IjoiYWNjZXNzIiwiYWxnIjoiSFMyNTYifQ...;Max-Age=3600;path=/;HttpOnly
< Set-Cookie: refresh_token=eyJraWQiOiJSOTJTQkhKQzFVNERBSU1HUTNNSE9HVk1YIiwic3R0IjoicmVmcmVzaCIsImFsZyI6IkhTMjU2In0...;Max-Age=5184000;path=/;HttpOnly
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Mon, 05 Dec 2016 05:30:25 GMT
<
* Connection #0 to host localhost left intact
{
"account": {
"href": "https://api.stormpath.com/v1/accounts/<account id>",
"createdAt": "2016-03-04T06:29:48.506Z",
"modifiedAt": "2016-08-17T18:01:07.812Z",
"username": "<username>",
"email": "<email>",
"givenName": "<givenName>",
"middleName": null,
"surname": "<surname>",
"status": "ENABLED",
"fullName": "<full name>",
"emailVerificationStatus": null,
"passwordModifiedAt": "2016-05-24T02:14:01.000Z"
}
}
모두 access_token
과 refresh_token
쿠키뿐만 아니라 계정 정보가 포함 된 JSON 응답. 당신은 OAuth2를 사용하려는 경우
, 당신은 지원하는 /oauth/token
엔드 포인트를 모두 grant_type=password
과 grant_type=client_credentials
흐름 :
> POST /oauth/token HTTP/1.1
> Host: localhost:8080
< HTTP/1.1 200
< Set-Cookie: access_token=eyJraWQiOiJSOTJTQkhKQzFVNERBSU1HUTNNSE9HVk1YIiwic3R0IjoiYWNjZXNzIiwiYWxnIjoiSFMyNTYifQ...;Max-Age=3600;path=/;HttpOnly
< Set-Cookie: refresh_token=eyJraWQiOiJSOTJTQkhKQzFVNERBSU1HUTNNSE9HVk1YIiwic3R0IjoicmVmcmVzaCIsImFsZyI6IkhTMjU2In0...;Max-Age=5184000;path=/;HttpOnly
< Cache-Control: no-store, no-cache
< Pragma: no-cache
< Content-Type: application/json;charset=ISO-8859-1
< Content-Length: 933
< Date: Mon, 05 Dec 2016 05:38:53 GMT
<
* Connection #0 to host localhost left intact
{
"access_token": "eyJraWQiOiJSOTJTQkhKQzFVNERBSU1HUTNNSE9HVk1YIiwic3R0IjoiYWNjZXNzIiwiYWxnIjoiSFMyNTYifQ...",
"refresh_token": "eyJraWQiOiJSOTJTQkhKQzFVNERBSU1HUTNNSE9HVk1YIiwic3R0IjoicmVmcmVzaCIsImFsZyI6IkhTMjU2In0...",
"token_type": "Bearer",
"expires_in": 3600
}
I 희망 : 당신은 같은 응답을 얻을 것이다
curl -v -X POST \
-d grant_type=password -d username=<email> -d password=<password> \
http://localhost:8080/oauth/token
이게 도움이됩니다!
전체 공개 : 저는 Stormpath의 Java 개발자 전도자 중 하나입니다.
우수합니다. 감사! – Faizal
위대한! 위의 대답을 수락하십시오. 감사. – afitnerd
이 StormPath 기본 설정에서 CORS를 활성화하는 데 관한 모든 설명서도 함께 제공 할 수 있습니까? 감사! – Faizal