【发布时间】:2016-01-25 06:54:13
【问题描述】:
我正在为Angular SPA(单页应用程序)编写代码。
在后端,它连接到用
Java编写的引擎,该引擎完成大部分处理(我不关心)。我正在使用
UI Router进行路由。
问题
但是有一个棘手的情况我无法完成。
登录时,我进行了 API 调用,该调用返回
JSON格式的响应。如果我的调用成功(即登录凭据匹配),我会在返回的
JSON中获得一个令牌,它基本上只是一个由符号、字母和数字组合而成的字符串。我将其保存在我的
rootscope中,然后以 $rootScope.myToken 的形式访问它。然后我在随后的 API 调用中使用相同的令牌。
现在我想在AngularJS 中做的是如果用户未登录并尝试通过在地址栏中输入直接访问某个 URL 来将用户重定向到登录页面。
我在这里找到了一个相当简单的方法 Redirect on all routes to login if not authenticated 。但是我无法用我的令牌来实现这一点。
问题
我应该怎么做才能使用令牌进行这项工作?除了这个答案之外的任何其他建议也是受欢迎的。
PS:我在 stackoverflow 上尝试了多种方法,但我发现它们要么不能在我的上下文中工作,要么过于复杂。
更新:我可以在我的代码中成功实现 Simon H 的答案。但是我面临的问题是,这只会在我登录和退出我的应用程序至少一个之后重定向。如果我尝试通过 URL 直接访问页面而无需登录和退出至少一次,此方法将失败,我仍然可以访问该页面。有小费吗?
【问题讨论】:
标签: javascript angularjs angular-routing