2017-12-21 21 views
0

通常、私のIdPでauthorizeコールバックURL/redirect_urlを登録する必要があります。IdPですべてのクライアントサイドルートを登録せずにURLにログインした後にリダイレクトするには

しかし、そのredirect_urlがユーザーが無許可の状態でアクティブ化しようとしたものであれば、1000個の可能なすべてのルートをIdPに登録する必要があります。

解決策はありません。

他に何ができますか?

UPDATE

私はジャバスクリプトベースのアプリケーションのためにある暗黙の流れを使用しています。

答えて

0

どのフローを使用しているのかわかりません。私は暗黙のフローを想定していますが、この解決策を適用することができます。

ほとんどのクライアントは、特別なhttp://mypage/login-callbackルートを持つことでこれを解決します。したがって、このルートはredirect_uriとして登録するだけです。 OIDC認証エンドポイントにリダイレクトする前に、ユーザーが要求したルートを保存します。クッキーを設定するか、sessionstorageに保存してください。 login-callbackにリダイレクトされたら、トークンを抽出してcookie/localstorageキーを確認してから別のリダイレクトを行います。ここで

はoidcクライアントを使用してランダムな角度の例です:

async completeAuthenticationAsync() { 
    // complete login, get tokens etc... 
    this.user = await this.manager.signinRedirectCallback(); 
    this.emitState(); 
    // check for previously saved URI 
    var redirect = sessionStorage.getItem("auth:redirect"); 
    if(redirect){ 
     // redirect to route - this is using the angular router 
     sessionStorage.removeItem("auth:redirect") 
     this.router.navigate([redirect]); 
    } 
    else { 
     // redirect to start page 
     this.router.navigate([""]); 
    } 
} 

編集:あなたが公式の情報源を探しているとあなたがアイデンティティ・サーバー4をタグ付けされたので、彼らは彼らのJavaScriptクライアントの例では二重のリダイレクトを実行します。 http://docs.identityserver.io/en/release/quickstarts/7_javascript_client.html

+0

[OK]をクリックすると、callback.htmlにリダイレクトされ、再び内部で処理されます。window.location = "index.html"; SPAをロードします。具体的なサンプルコードをありがとう。私はgithubで3つの角のサンプルを研究し、それらはすべて***です。 Dankeschön:P – Pascal

+0

私はその角張ったアプリへのリンクをお願いしますか? – Pascal

+0

Ok cool私はopenidの移行に多くの仕事をしていました...あなたの助けをもう一度ありがとう! – Pascal

関連する問題