gpt4 book ai didi

authentication - 在 Ember.JS 应用程序中强制执行用户/身份验证状态的最佳方法

转载 作者:行者123 更新时间:2023-12-03 07:42:07 24 4
gpt4 key购买 nike

正在开发我的第一个 EmberJS 应用程序。整个应用程序要求用户登录。我正在尝试强制用户现在(初始加载页面时)和将来(用户注销时)登录的最佳方式并且没有刷新)。

我已经处理了用户身份验证 Hook - 现在我有一个 ember-data 模型和关联的存储,用于连接处理授权用户并创建用户“ session ”(使用 sessionStorage)。

我不知道该怎么做是强制用户在跨路由转换时进行身份验证,包括根路由中的初始转换。我把这个逻辑放在哪里?如果我有一个身份验证状态管理器,如何将其挂接到路由中?我应该有一个位于根路由之外的身份验证路由吗?

注意:如果这个问题措辞不好或者我需要更好地解释什么,请告诉我,我很乐意这样做。

编辑:我最终做了一些我认为更像 Ember 风格的事情,尽管可能是一个困惑的实现。我有一个身份验证状态管理器,用于存储当前用户的身份验证 key 以及当前状态。

每当需要身份验证时,它只需向 authmanager 请求并传递一个回调函数以使用身份验证 key 运行。如果用户未登录,它将拉出一个登录表单,并在用户登录之前暂停回调函数。

这是我正在使用的代码的一些精选部分。需要清理,我遗漏了一些东西。 http://gist.github.com/3741751

最佳答案

如果您需要在初始状态转换之前执行检查,Ember.Application 类上有一个名为 deferReadiness() 的特殊函数。源码中的注释:

By default, the router will begin trying to translate the current URL into application state once the browser emits the DOMContentReady event. If you need to defer routing, you can call the application's deferReadiness() method. Once routing can begin, call the advanceReadiness() method.

请注意,在撰写本文时,此功能仅在 ember-latest 中可用。

关于authentication - 在 Ember.JS 应用程序中强制执行用户/身份验证状态的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12272881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com