Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何检测用户是否来自外部链接?_Ember.js - Fatal编程技术网

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

Ember.js 如何检测用户是否来自外部链接?,ember.js,Ember.js,在beforeModelhandler中,是否有办法区分通过外部链接(例如历史记录或其他站点)访问或通过链接从同一应用程序的其他页面访问 我的情况如下: 若用户通过直接链接访问我的应用程序并请求需要经过身份验证的用户的路由,我将转换到索引路由并使用授权表单显示弹出窗口 如果用户已经在我的站点上,并且试图访问请求的路由需要经过身份验证的用户,我将中止转换并在上一页显示弹出窗口 我没有单独的页面进行身份验证 我目前的工作是检查一些奇怪的私有属性,称为过渡对象的sequence,它已被传递到befor

beforeModel
handler中,是否有办法区分通过外部链接(例如历史记录或其他站点)访问或通过链接从同一应用程序的其他页面访问

我的情况如下:

  • 若用户通过直接链接访问我的应用程序并请求需要经过身份验证的用户的路由,我将转换到索引路由并使用授权表单显示弹出窗口
  • 如果用户已经在我的站点上,并且试图访问请求的路由需要经过身份验证的用户,我将中止转换并在上一页显示弹出窗口
  • 我没有单独的页面进行身份验证
  • 我目前的工作是检查一些奇怪的私有属性,称为过渡对象的
    sequence
    ,它已被传递到
    beforeModel
    处理程序,如果
    transition.sequence==0
    ,则用户来自“外部”,否则用户通过链接“内部”我的应用程序

    我认为这是一个不好的实现目标的方法,核心开发人员可以随时删除
    sequence
    属性

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

    谢谢你的帮助

    p.S.EmberJS v1.10.0


    顺便说一句,我的英语很抱歉

    如果您不想使用内部呼叫,您可以在应用程序路径中跟踪历史记录,如下图所示

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

    你可能需要

    聊天后更新


    计数、中止等转换的逻辑可以在应用程序路径中的willTransition操作中完成

    也许我错了,但这些链接如何帮助我?另外,我已经在使用身份验证抽象()。嗯,我可能有点误解,我的想法是你不需要检查是否有人通过直接链接访问。你可以直接检查你的身份验证服务,看看用户是否登录。不,我需要一种方法来检测通过外部链接访问我的应用程序我更新了我的答案,但我再次阅读了你的东西。我明白你想做什么了。如果我可能会问一个愚蠢的问题,但在身份验证后将用户重定向到他们试图转到的路由是否会更容易?如果路由无效,则重定向到root,而不是在页面刷新时将其重定向到root或直接链接到非索引路由。确定再次更新以更好地回答您的问题。