检测动态段中的更改

时间:2015-12-21 16:55:05

标签: ember.js

我有authenticated路由,其中​​包含动态细分:slug,用作单独组织的简称。每个组织内都有个人和团体。不同的组织可能具有相同的individual IDsgroup IDs

因此,网址/bigcompany/s/individual/1/smallcompany/s/individual/1都有效,并且会将您带到ID = 1的个人中。

router.js

Router.map(function() {
    this.route('authenticated', { path: '/:slug' }, function() {
        this.resource('individual',  { path: 's/individual/:id' }, function() {
            ...
        });
        this.resource('groups', { path: 's/groups' }, function() {
            this.route('group', { path: ':id' });
        });
    });

    this.route('login', { path: ':slug/s/login' });
});

/bigcompany/s/login登录后,我需要/bigcompany/s/individual/1并为该个人加载模型。

问题是,我可以直接将浏览器中的网址从bigcompany更改为smallcompany,然后继续加载/smallcompany/s/individual/1的模型。

如果用户直接将浏览器中的网址编辑为其他:slug,则会将用户从原始:slug中删除并加载新的{的登录页面{1}}?

1 个答案:

答案 0 :(得分:1)

我最终使用JavaScript API来处理名为JavaScript Cookie的浏览器Cookie。当用户登录到一个组织时,我打电话

`Cookies.set('slug', credentials.slug);`

然后在authenticated路线中,我检查网址中的当前:slug是否与slug Cookie匹配。

如果用户切换到URL中的其他:slug,则会将用户注销,转换到新:slug的登录页面,然后删除slug Cookie。< / p>