2016-11-02 14 views
1

フロントエンド(SPA、angular2、lite-server)と隠れたバックエンド(publicには公開されていない、つまりlocalhost:8080、スプリングブート+スプリングセキュリティ) frontend/apiはフードの下でbackend/apiに電話します。OAuth2:認証コード許可フロー

基本的には、のOAuth2フローのこの種の手順は以下のとおりです。UIで

  1. は - REDIRECT_URIは、アクセスコードとREDIRECT_URIに戻って取得承認
  2. を指定して認証サーバへのURLをヒット
  3. ???
  4. サーバーの交換はトークン認証用のコードにアクセスし、ユーザー(認証済み)
  5. それを維持し、彼は私が3と5との間のステップを取得することはできません

にアクセスすることを制限されたバックページになります私のバックエンドサーバは見えないので、redirect_uriはフロントエンドのものでなければなりません。私はおそらくbackend/api/authへの呼び出しをプロキシするfrontend/api/authを使用することができ、バックエンドは承認許可を得るでしょうが、この場合、ユーザーはフロントエンドにリダイレクトされません。だから、私はjavascriptのコードを取得し、代わりに/api/authへのPOSTを行う必要がありますか?

また、すべてのリダイレクト後にステップ6に戻る方法はわかりません.SPAアプリはリロードされます(状態を削除します)。redirect_uriは/api/authのURLです。

+0

これをどのように解決しましたか? – flyer88

+0

最初のことは、spring-oauth2の代わりにspring-socialに切り替えました。しかし、いったん思ったら、spring-oauth2でも同じことができます。したがって、手順は次のとおりです: 0)リダイレクトURLを設定するか、/ api/auth/facebookにリダイレクトするパラメータとして指定します 1)承認アイコン - >/api/auth/facebook - >バックエンド/認証/フェイスブック )バックエンドはダンスを開始し、完全にURLをリダイレクトするようになります(ステップ0を参照) 3)フードの下に/ api/auth/facebook?authorization_code = blabla 4)成功後にUIにリダイレクトする(successHandler.setDefaultTargetUrl) –

答えて

0

質問が正しい場合、localtunnelまたはngrok経由でサーバーを「公開」するのが最も簡単です。

関連する問題