2014-07-01 83 views
0

我在寫一個角度應用程序,我需要接受帶碎片哈希(OAuth 2.0)的URL。把它縮短看起來像這樣。從AngularJS中的默認路由中刪除哈希

http://example.com/#access_token=918f4d6e90b25b13ef66a

當此URI加載路由進程不能識別路徑並正確重定向應用的默認路由。問題是,以這種方式我放鬆了哈希,我無法再解析它。

我想要做的是在散列被移除之前解析它。 您對可能的解決方案有任何想法嗎?

謝謝。

P.S.在這個應用程序中,我不能使用HTML5模式。隨着它啓用它工作得很好。

+0

那麼,究竟會發生什麼? – gkalpak

+0

我很想在丟失它之前解析哈希。 –

+0

顯然:)但是你想在更高的水平上實現什麼?你將如何使用解析的令牌? – gkalpak

回答

1

你只需要定義一個額外的路由來「catch」並保存訪問令牌,然後重定向到另一個路由。
例如: -

$routeProvider 
    ... 
    .when('/access_token=:accessToken', { 
     template: '', 
     controller: function ($location, $routeParams, AuthService) { 
      AuthService.login(    // `AuthService` will save the token 
       $routeParams.accessToken); // The token is available in `$routeParams 
              //  under the key `accessToken` 
      $location.path('/'); // Redirect to the default route 
      $location.replace(); // For better UX, remove this route from history 
     } 
    }) 

還參見本short demo

或者直接導航到該URL的現場演示:
http://fiddle.jshell.net/ExpertSystem/N8CgC/show#access_token=12345

+0

明天早上去試試吧。非常感謝您的回答。 –

+0

它工作完美。非常感謝。 –