ember.js 身份验证

2024-07-02

我想用 ember.js 实现身份验证。 因此,当应用程序启动时,在路由器处理请求的 url 之前,我想检查用户状态。如果用户未经过身份验证,我想保存请求的 url 并重定向到特定的 url (/login)。 我尝试实现这个重载 Ember.Route 但我认为这不是一个好的做法。 例如,如果我这样做:

var AuthRoute = Ember.Route.extend({  
    redirect: function() {  
        var controller = App.userController;  
            if (!controller.get("userAuth")) {  
                controller.set("lastFilter", this.routeName);  
                this.transitionTo("index");
            }  
        }  
    }  
});

如果 url 是“/admin/foobar”,则管理路由将重定向而不是 foobar。

我可以在路由器启动之前处理重定向吗?


我用这样的东西

Ember.SecureRoute = Ember.Route.extend({
  role: null,

  redirect: function (model) {
    if (!this.controllerFor('login').get('authenticated')) {
        this._routeToLogin();
    }

    var role = this.get('role');
    if (!Ember.isEmpty(role) && !this.controllerFor('login').hasRole(role)) {
        this._routeToLogin();
    } 
  },

  _routeToLogin: function () {
    var infos = this.get('router.router.currentHandlerInfos');

    this.router.router.didTransition(infos);

    var routeName = !this.router.router.hasRoute(this.routeName) ? this.routeName + '.index' : this.routeName;
    var params = infos.filter(function (item, index, enumerable) { return item.context !== undefined; }).map(function (item) { return item.context; })
    var url = Ember.Router.prototype.generate.apply(this.router, params.insertAt(0, routeName))
    this.router.location.setURL(url);

    this.transitionTo("login");
  }
});

在您的登录控制器中,您可以使用浏览器历史记录返回到原始路线

APP.LoginController = Ember.Controller.extend({
  //other stuff

  authenticate: function (username, password) {
    //do the authentication
    history.go(-1);
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ember.js 身份验证 的相关文章

  • 与查询参数一起使用时,Ember .observe() 返回两次回调

    http jsbin com vowup 2 http jsbin com vowup 2 如果我单击更改为随机 程序将登录控制台两次 由于某些奇怪的原因 将修订变量设置为字符串时它可以正常工作 但对于数字或任何其他类型的变量会记录两次 将
  • ember-data-1.0.0 activemodeladapter 错误在传递给“push”的哈希中包含“id”

    我在后端使用 ember data 和带有 Rails 和 mongoid mongodb 的 activemodel 适配器 每当我向 Rails 应用程序发出请求时 emberjs 都会显示返回的数据 但在 chrome 开发人员控制台
  • 在哪里放置固定装置?

    我应该在使用 ember cli 生成的 Ember JS 应用程序中的哪里定义固定装置 我尝试过很多地方 例如app js并在一个名为 fixtures 的文件夹中 经过一番挖掘后我发现改变Ember MODEL FACTORY INJE
  • 绑定 Ember TextField 中的计算属性

    我正在尝试将我的数据模型绑定到 Ember js 中的文本字段 该模型有一个表示货币值的字段 例如 1 000 50 然后用户可以更改该值 Ember 接收数字 1000 50 形式的数据 非货币格式 我将视图绑定到具有良好格式的计算属性
  • EmberJS:对象作为查询参数来刷新模型

    我遵循了查询参数指南 http guides emberjs com v1 11 0 routing query params http guides emberjs com v1 11 0 routing query params 而且效
  • 加载 Ember.View 的内容后初始化 jQuery 插件

    DEBUG Ember VERSION 1 0 0 rc 6 ember js DEBUG Handlebars VERSION 1 0 0 rc 4 ember js DEBUG jQuery VERSION 1 9 1 控制器是一个Em
  • 使用 qunit 测试 emberjs/rails/devise 应用程序时“无法验证 CSRF 令牌真实性”

    我有一个 emberjs rails 应用程序 使用设备进行用户身份验证 我正在使用 qunit 构建集成测试 我在运行测试之前手动登录应用程序 测试期间可以处理 GET 请求 但 POST 请求失败 特别是 在发出 POST 请求时 我收
  • Ember.js - 从计算属性返回 unicode 字符

    我试图从计算属性返回 unicode 字符 但是 不断逃脱 amp 我什至尝试过像这样返回 Handlebars SafeString return new Ember Handlebars SafeString 61573 产生相同的结果
  • 使用 Node.js 的前端 javascript 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 ember.js 模板的 Bootstrap Popovers

    我正在尝试使用引导程序弹出窗口 http twitter github io bootstrap javascript html popovers使用 EmberJS 这样弹出窗口的内容将是 ember handlebars 模板 带有绑定
  • Ember 克隆模型创造新纪录

    我想克隆当前正在编辑的模型 我发现了几种几乎有效的方法 但两者都不完美 1 model get data attributes 获取除驼峰式形式的关系之外的所有属性 生成一条新记录 但关系当然丢失了 2 model serialize 生成
  • Ember 数据保存方法,创建与更新

    我不明白 Ember 如何确定是否应该更新或创建记录 我认为它是基于 ID 或商店条目 但它似乎是其他东西 代码示例阐明了 this returns the user without making an api call currentUs
  • 如何在重新渲染 Ember 视图的一部分时随时运行代码?

    我的目标是拥有一个类似 Facebook 的按钮 可以有条件地出现在 Ember 视图中 我的模板是 if condition Click Like div class fb like fb edge widget with comment
  • 如何使嵌入的 hasMany 关系与 ember 数据一起使用

    我无法得到embedded hasMany正确处理 ember 数据 我有这样的东西 App Post DS Model extend comments DS hasMany App Comment App Comment DS Model
  • 在 Ember 中调用 App.store.commit() 太快

    在我的应用程序中 我有一个项目列表 以及一个用于删除最后一个项目的按钮 然后在我的控制器上我写了以下操作 removeLastItem gt lastItem current order get items get lastObject l
  • ember.js 如果没有提供则显示默认嵌套路由

    在我的 ember 应用程序 1 0 0 生产版本 中 我的 URL 结构如下 item item specific item name defined in routes 路由器映射看起来有点像这样 App Router map func
  • Ember.js - 创建多步骤向导 - 如何?

    我需要创建一个包含多个步骤的向导 每个步骤将显示一个带有选项的表单 并且根据用户的选择 向导应该转到某个步骤 并将用户首选项 选择 存储在某个位置 这些首选项不会保存在模型中 它们仅与模型创建步骤相关 为了提供一些背景信息 其目标是 向用户
  • ember.js 身份验证

    我想用 ember js 实现身份验证 因此 当应用程序启动时 在路由器处理请求的 url 之前 我想检查用户状态 如果用户未经过身份验证 我想保存请求的 url 并重定向到特定的 url login 我尝试实现这个重载 Ember Rou
  • Qunit 中挂起的 Ember 并发超时

    在 Ember 中 我有一个组件可以启动永无止境的轮询 以保持一些数据最新 就像这样 export default Component extend pollTask task function while true yield timeo
  • Ember数据和脏记录

    放弃对记录所做的更改的建议方法是什么 我有以下逻辑将脏记录恢复到原始状态 if controller get isDirty controller get content rollback 这有效unless提交记录的尝试未成功 如果我尝试

随机推荐

  • 在 Javascript 中访问对象属性

    我正在尝试访问电子邮件和密码字段 但我不知道在哪里 0 来了 我正在从 rethinkdb 检索对象 它看起来不错 没有 0 但后来我使用 Lodash assign 像这样的方法 var user new User var finduse
  • 从相同的代码创建应用程序的免费/付费版本

    所以我现在要讨论我的应用程序的发布时间了 我们计划发布两个版本 一个是基于广告的免费解锁版本 另一个是付费完全解锁版本 我设置了代码 只需在启动时设置一个标志即可启用 禁用广告并锁定 解锁所有功能 因此 从字面上看 这些版本之间只有一行代码
  • 如何关闭 OSX 窗口?

    我想创建一个应用程序mainly只涉及状态栏 到目前为止 我已经使用创建了状态栏项目NSMenu and NSStatusBar我还删除了带有加载这段代码的停靠图标 NSApp setActivationPolicy NSApplicati
  • 浮点指令异常——FLDZ故障?

    I am trying to debug the problem I posted earlier here C and pin tool very weird DOUBLE variable issue with IF statement
  • php脚本在某个页面停留几秒钟并重定向

    有没有办法让页面在 php 中显示几秒钟并重定向到另一个页面 元重定向可能是您想要的 但是您CAN在 PHP 中也执行此操作 如下所示 其中 10 是等待的秒数
  • WP MVVM 导航 OnNavigedTO

    我开始在我的应用程序中实现 MVVM 并遇到了了解用户何时导航到视图的问题 要在视图之间导航 我可以使用navigationService Navigate 如何检查何时导航到视图 我可以使用该活动吗navigationService Na
  • 在 Tensorflow 中导出推理图时出现“解析输入...形状不完整”错误

    我正在使用 Tensorflow 的对象检测 API 训练神经网络来检测汽车 我使用以下 senddex youtube 视频来学习和执行该过程 还有他的视频的文字版本 https pythonprogramming net testing
  • Java Selenium - 如何在基于 AngularJS 的页面中单击没有 ID 或 ng-class 的按钮

    我使用的以下代码未单击按钮并显示错误消息 WebElement clickNextButton webDriver findElement By cssSelector button ng class btn success clickNe
  • iOS IAP 无法在纯 ipv6 网络上运行

    我在 Appstore 中有一款 iPhone 游戏 最近尝试使用最新的 Xcode 上传更新版本 但被拒绝 因为应用内购买无法在仅 ipv6 的网络上运行 它在 ipv4 网络上运行良好 ViewController m NSMutabl
  • .catch() 的承诺被拒绝,但在 Promise.allSettled 中显示为已履行[重复]

    这个问题在这里已经有答案了 这是问题的简化版本 有一些承诺 但很少 then 链条 以及一个 catch 错误处理块 每个承诺都可能解决或拒绝 因此我使用Promise allSetted根据排列顺序和状态了解哪个承诺失败了 当所有承诺都解
  • 从函数和方法返回受约束的泛型

    我想创建一个返回符合协议的对象的函数 但该协议使用typealias 给出以下玩具示例 protocol HasAwesomeness typealias ReturnType func hasAwesomeness gt ReturnTy
  • 使用 Javascript 隐藏数据网格列?

    我有一个包含大约 20 列的 net 数据网格 我需要使用 JavaScript 通过单击按钮来切换列的可见性 有任何想法吗 您想使用 COLGROUP 来执行此操作 否则您必须应用样式every细胞开启everyrow 这将非常低效 并且
  • 属性的状态:已弃用或已过时?

    我是 HTML 5 的新手 有问题需要在diverseW3 HTML 标准化文档获取属性的状态 例如 bgcolor的属性自 HTML 4 01 起 不应再使用该元素 它已被弃用 看 http www w3 org TR html4 pre
  • 替换 cookie 中的值 ASP.NET Core 1.0

    我在 ASP NET Core 1 0 中使用 cookie 中间件 没有 ASP NET Identity 如本文所述 https docs asp net en latest security authentication cookie
  • 点运算符不获取 Mongoose Document 对象的子属性

    console log gt gt gt gt gt gt user user outputs gt gt gt gt gt gt user username user1 salt 3303187e50a64889b41a7a1c66d3d
  • Discord py,ctx.guild.members,仅返回机器人

    ctx guild members 是一个数组 应该返回调用命令的服务器中的每个成员 但如果我这样做 print ctx guild members 它只返回机器人本身
  • 使用python docx合并word文档

    我有几个单词文件 每个文件都有特定的内容 我想要一个片段来展示或帮助我弄清楚如何在使用 Python 时将单词文件合并到一个文件中docx图书馆 例如 在 pywin32 库中我执行了以下操作 rng self doc Range 0 0
  • 将异常从 log4net 记录到 Azure 函数中的 Azure 表存储

    我指的是这个链接 https stackoverflow com questions 51841879 is it possible to customize azure table storage by code log4net azur
  • 如何在 JavaScript 中访问 Chrome 拼写检查建议

    如何检测 JavaScript 文本区域内的拼写错误 有与此相关的事件吗 如何访问 Chrome 针对拼写错误单词的拼写检查建议 如何访问 Chrome 针对拼写错误单词的拼写检查建议 尽我所知 你不能 https stackoverflo
  • ember.js 身份验证

    我想用 ember js 实现身份验证 因此 当应用程序启动时 在路由器处理请求的 url 之前 我想检查用户状态 如果用户未经过身份验证 我想保存请求的 url 并重定向到特定的 url login 我尝试实现这个重载 Ember Rou