0

在我的情况下,最佳做法是什么。

我有 Angular 应用程序并使用 passport.js 表达后端 API 进行授权。

例如,要连接 twitter,我在 express.js 后端的“/connect/twitter/”上有GET 。它继续

app.get('/connect/twitter', passport.authorize('twitter-authz'));

当我单击此链接请求时,在Angular 应用程序中不起作用 - 它只是使用此 url 更新浏览器地址栏。

如何隔离 URL 以进行身份​​验证?

4

1 回答 1

1

如果你使用$locationProvider.html5Mode(true),Angular 会拦截点击链接给他们这种行为。这些是该规则的例外情况:

  1. 给链接一个target属性。例子:<a href="/ext/link?a=b" target="_self">link</a>
  2. 链接到不同的域。例子:<a href="http://angularjs.org/">link</a>
  3. 链接到以“/”开头的路径,该路径在定义 base 时会导致不同的基本路径。例子:<a href="/not-my-base/link">link</a>

所以,最简单的答案可能是给链接一个target='_self'属性。

有关更多详细信息,请参阅使用 $location 指南中的“Html 链接重写” 。

于 2013-05-11T22:31:53.733 回答