2016-12-29 12 views
0

Auth0で自分のアプリケーションにログインした後、ログインの正常終了を申請して、要求されたページにリダイレクトしようとしていますが、強調表示された行は決して呼び出されません。 Angular2とObservablesの新機能で、より良い方法があるのか​​、間違っているのかを知る必要があります。Auth0でログインに成功した後、ページにリダイレクトする適切な方法は何ですか?

更新:一部の再生後、Auth0ロックコンポーネントがレンダリングされる前に.subscribe()が実行されています。その後、credsでログインすると、.subscribe()は再び実行されないので、リダイレクトはありません。

enter image description here

+0

ハイライトされた部分が呼び出されない場合、私はバックエンドからの応答を受け取ったとは思わない。 [ネットワーク]タブでレスポンスが表示されますか? – echonax

+1

@echonax投稿を更新しました。購読は実行され、ユーザーがログインする前に実行されます。ログインが成功した後、追加イベントは発生しません。おそらく私はちょうどAuth0ロックコンポーネントを正しく使用していません。 –

答えて

1

私はちょうど公式Auth0ドキュメントを踏襲し、ユーザープロファイルが設定された直後にリダイレクトを置きます。ここでは、公式ドキュメントからのコードがある...

constructor(private router: Router) { 
    this.userProfile = JSON.parse(localStorage.getItem('profile')); 

    this.lock.on("authenticated", (authResult) => { 
     localStorage.setItem('id_token', authResult.idToken); 

     this.lock.getProfile(authResult.idToken, (error, profile) => { 
      if (error) { 
       alert(error); 
       return; 
      } 

      profile.user_metadata = profile.user_metadata || {}; 
      localStorage.setItem('profile', JSON.stringify(profile)); 
      this.userProfile = profile; 
     }); 
     this.router.navigate(['/dashboard']); 
    }); 
} 

具体的に、彼らはthis.router.navigate(['/Whatever'])

を使用するには、この情報がお役に立てば幸いです。ここに公式の文書ですhttps://auth0.com/docs/quickstart/spa/angular2/04-user-profile

あなたが実際のルーティングを置くことを選択した場合はどこにでも、あなたがルータに渡すことを確認してください。

EDIT

これは、私は、彼らがコンストラクタではなく、ログイン機能でリダイレクトを処理する方法Auth0ドキュメントhttps://auth0.com/docs/quickstart/spa/angular2/02-custom-login通知を投稿するメンターURLです。

+0

私は実装されており、ブラウザーのURLアドレスが/ homeに変更されているためEdge/Chrome/IEでは/ homeを表示しないログインボタンが表示されます。 Firefoxで動作します....非常に奇妙です –

関連する問題