2016-04-08 13 views
1

私はplayフレームワークを使っています。 「https://example.com/#/dashboard」のようなURLをリクエストしています。Angularjs、Pac4j、WSO2認証を使用したPlay Framework

pac4jとWSO2を使用してログインしようとしましたが、ログイン後にURLを保持できないという問題があります。ログインすると、デフォルトページに移動します。

は、だから私は、ログインが成功した後、私は要求されたページ

にリダイレクトすることができるように要求されたURL(https://example.com/#/dashboard)を保存するために計画された。しかし、私はrequest.path()、request.uri()、要求して試してみました。 queryString( '')など..しかし、私は再生サーバーでreqeusted URLを取得することはできません。 request.hostName()でホスト名( "example.com")を取得できます。どうすれば "/#/ダッシュボード"を手に入れることができますか?あなたは私を助けてくれますか?

答えて

0

私自身で解決策を見つけました。 urlの '#'記号の後のparamはルーティングのためのものなので、私たちのhtmlだけが読み込みと経路指定ができます。サーバはその値を取得できないので、pac4jはこのパラメータでURLを保存してリダイレクトできません。この問題を解決するには、URLからハッシュ「#」を削除する必要があります。以下のリンクを参考にしてください。

https://scotch.io/tutorials/pretty-urls-in-angularjs-removing-the-hashtag

あなたはヨーマン&発電の角度を使用している場合は、この余分なステップ

https://www.npmjs.com/package/connect-modrewrite

を行い、私は以下のようなものを変更して、私はヨーマン&イサキを使用しています。 http://jjt.io/2013/11/16/angular-html5mode-using-yeoman-generator-angular/ しかし、古いバージョンのため、このリンクは、新しいバージョンのために私が述べたリンクを使用します。package.jsonで は 「-modrewriteを接続する」とうなり声でlivereloadに以下

..... 
     livereload: { 
     options: { 
      open: true, 
      middleware: function (connect) { 
      return [ 
       modRewrite(['^[^\\.]*$ /index.html [L]']), // Only this line need to be added 
       connect.static('.tmp'), 
       connect().use(
       '/bower_components', 
       connect.static('./bower_components') 
      ), 
..... 

文献を追加し、この依存関係を追加します上記(https://www.npmjs.com/package/connect-modrewrite

関連する問題