私は、ui-routerを使ってAngularJSでフロントエンドを開発しました。バックエンドからREST APIを使用するには、OAuth2アクセストークン(暗黙の許可)を取得する必要があります。私は明らかに、リダイレクトURIであることAngularJS ui-routerとOAuth2のaccess_tokenが衝突する
mydomain.com/home/#access_token=hdzjkdnba89fenbjkéz38U0D903ç&...
mydomain.com/home
URLにトークンバック認証サーバからのアクセスを得るとき
私の問題は、OAuthのダンスの最後のステップです。
リダイレクト後の第二のほんの一部、AngularJSは
mydomain.com/#/my-default-view
のようなものにURLを変更し、その結果、アクセストークンは、URLから消去されます。
今いくつかのこと:
- 私は私のOAuth2クライアント用のハッシュ(「#」)を含むリダイレクトURIを定義することは許されないのです。したがって、
mydomain.com/#/auth-complete/
のようなものはでなく、となります。 - 私は
$routeProvider.otherwise('/')
を使用します。 $locationProvider.html5Mode(true);
を設定して、中央の「#」を削除しようとしましたが、問題は同じです(リダイレクト後にURLとアクセストークンが即座に消去されます)。- URLがAngularで変更された後でも、HTTP応答でアクセストークンにアクセスできるため、おそらく
$http
インターセプタを使用できますが、この共通タスクにはあまりにも多くの音がしますか?
アドバイスはありますか?この1つはクライアント側アプリケーションのためのOAuth2プロバイダとしてGoogleで私の作品
おそらく、認証URLに一致する状態がない可能性があります。あなたは$ routeProvider.other( '/')を持っているので、不一致のURLパターンはWebサイトのルートに転送されます。 – erandac
しかし、任意のトークンを含むURLはどのように一致しますか? "URLに 'access_token'が含まれていて、何もしない"と言うのは正規表現のようなものを使うことができますか? – Buddyshot
はい、正規表現マッチングを使用できます。ここの文書をチェックしてくださいhttps://github.com/angular-ui/ui-router/wiki/URL-Routing – erandac