2016-10-17 5 views
1

ユーザー名とパスワードを使用してsessionTokenを取得できました。しかし、その後、AngularJSのPOSTコールを使用してセッションを作成します。角度(全ウェブアプリ)はAWS S3でホストされます。oktaでSessionTokenを使用してセッションを作成できませんPOST /セッションAPIコール

var session_data = { 'sessionToken' : My_session_Token}; 
$http({ 
     method: 'POST', 
     url: 'https://myorg.okta.com/api/v1/sessions', 
     data: session_data, 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json', 
      } 
     }).then(function(response) { 
      console.log(response); 
     }); 

私は取得していますエラーが

XMLHttpRequest cannot load https://myorg.okta.com/api/v1/sessions. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://s3.amazonaws.com' is therefore not allowed access. 

である私はすでにCORSがOktaの原点ヘッダだけでなく、S3バケットを許可する追加されました。私は

curl -v -X POST \ 
-H "Accept: application/json" \ 
-H "Content-Type: application/json" \ 
-d '{ 
    "sessionToken": "my_session_Token" 
}' "https://myorg.okta.com/api/v1/sessions" 

初めて端子を介して、次のやってみてください

はsessionTokenの唯一の私は、エラー

{"errorCode":"E0000004","errorSummary":"Authentication failed","errorLink":"E0000004","errorId":"oaeI-KKSO-iRGSR1gmyUjBS8g","errorCauses":[]}MAC-S01 
次取得1回の使用であるので、私は、

{"errorCode":"E0000005","errorSummary":"Invalid session","errorLink":"E0000005","errorId":"oaefADOnPONTDidUZYyrVc5rQ","errorCauses":[]}MAC-S014568:~ 

秒の時間を取得します

問題はCORSヘッダー(A私はすでに原点を追加しています)。 また、私のアプリケーションは角度があり、apiトークンを公開するのは危険なので、SSWS {api_TOKEN}を使用することはできません。 ヘルプは非常に高く評価されます

答えて

1

OktaはブラウザにCookieを設定するために/ api/v1/sessionsへのPOSTをサポートしていません。シンプルなユースケースについて、あなたはリダイレクトフローを使用することができます。

window.location = 'https://myorg.okta.com/login/sessionCookieRedirect?token={sessionToken}&redirectUrl={redirectUrl}'; 

はsessionTokenを使ってクッキーを設定するすべての許可方法がここに記載されています:http://developer.okta.com/use_cases/authentication/session_cookie

+1

実際に私はクッキーを設定しようとしているが、していないです現在のユーザーIDとユーザーの役割を取得します。これはPOST http https://myorg.okta.com/api/v1/sessionsのレスポンスで取得します。 SSWS APIトークンを公開せずにユーザーIDと役割を取得する他の方法はありません –

+1

Cookieを設定したら、myorg.okta.com/api/v1/users/meでGETリクエストを作成して現在のユーザーIDを取得できます。ただし、CORSをサポートしていないため、myorg.okta.com/users/me/rolesを呼び出すことはできません。 http://developer.okta.com/docs/api/resources/roles.html#list-roles-assigned-to-userにCORSタグがありません – kevlened

+0

ありがとうKevlened私もCORSエラーが発生しています私のsessionTokenを投稿する....私たち自身のサーバー側ではできないことは奇妙に思えます。 – AKMorris

関連する問題