如何检测用户是否来自外部链接?

时间:2015-03-19 21:21:55

标签: ember.js

有没有办法区分通过外部链接(例如来自历史记录或来自其他网站)的访问权限,或通过beforeModel处理程序中同一应用程序的其他页面的链接访问?

以下是我的案例:

  1. 如果用户通过直接链接访问我的应用程序并请求需要经过身份验证的用户的路由,我会转换到索引路由并显示带有授权表单的弹出窗口。
  2. 如果用户已经在我的网站上并尝试访问要求通过身份验证的用户的请求路由,我将中止转换并在上一页显示弹出窗口。
  3. 我没有单独的身份验证页面。
  4. 我当前的工作是检查一些名为sequence的转换对象的私有属性,该属性已传递给beforeModel处理程序,如果transition.sequence === 0,则用户来自“外部”,否则用户通过我的应用程序“内部”链接。

    我认为这是实现目标的一种糟糕方式,核心开发人员可以随时删除sequence属性。

    那么,是否有任何干净的方法来区分我的应用程序的“外部”或“内部”是否请求当前路由?

    我会感激任何帮助,谢谢!

    P.S。 EmberJS v1.10.0

    P.S.S。对不起我的英文

1 个答案:

答案 0 :(得分:1)

如果您想避免使用内部呼叫,您可以跟踪应用程序路由中的历史记录Implementing a "conditional" back button in ember.js

但是你的路由器可能会更好,因为控制器很快就会消失。

您可以使用http://emberjs.com/api/classes/Ember.Route.html#event_didTransition

聊天后更新

计数,中止等转换的逻辑可以在应用程序路由http://emberjs.com/guides/routing/preventing-and-retrying-transitions/中的willTransition操作中完成