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

2024-03-29

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

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

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

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

Edit:我最终做了一些我认为更像余烬风格的事情,尽管可能是一个混乱的实现。我有一个身份验证状态管理器,用于存储当前用户的身份验证密钥以及当前状态。

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

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


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

默认情况下,路由器将开始尝试将当前 URL 转换为 一旦浏览器发出应用程序状态DOMContentReady事件。如果你 需要延迟路由,可以调用应用程序的deferReadiness()方法。 一旦路由开始,请调用advanceReadiness() method.

请注意,在撰写本文时,此功能仅适用于Ember-最新 http://cloud.github.com/downloads/emberjs/ember.js/ember-latest.js

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何在 Cypress 的 E2E 测试中登录 Auth0?

    我已经开始测试 React Web 应用程序 但我没有走得太远 因为我遇到了登录问题 我在用cypress https www cypress io e2e测试工具 将显示一个带有登录按钮的欢迎页面 该页面会将您重定向到auth0 http
  • Devise 和 Ruby on Rails:尝试登录时如何解决“Completed 401 Unauthorized”问题

    我正在尝试将 Devise gem v4 7 2 与 Ruby on Rails v6 0 3 2 一起使用 单击 登录 按钮时 我收到以下输出 Started POST users sign in for 1 at 2020 11 21
  • 如何将 MVC 5 IdentityModels.cs 移动到单独的程序集中

    我想知道是否有人遇到了我在尝试搬家时遇到的问题ApplicationUser进入模型项目 所有其他模型都驻留在其中 包括与用户表相关的模型 我的测试 MVC 5 解决方案由一个 Web 项目和两个类库组成 一个用于数据访问层 DAL 另一个
  • 如何使用 Laravel 5 检查用户是否已确认

    我正在尝试开箱即用地使用 Laravel 身份验证 身份验证不是问题 但我想检查用户是否已确认他的电子邮件地址 我如何让拥有Laravel检查表值是否confirmed值为 1 在 config auth php 我已经设置 driver
  • Ember.js 输入字段

    是否可以在 Ember js 视图中使用标准 HTML5 输入字段 或者您是否被迫使用 Ember TextField Ember CheckBox Ember TextArea 和 Ember select 等内置字段的有限选择 我似乎无
  • 如何在多个Postgresql数据库之间共享表

    我的 Web 应用程序有多个部署 每个部署都是一个具有唯一 URL 的唯一站点 每个部署都有不同的数据 UI 等 但有非常相似的 Postgresql 数据库结构 带有 PostGIS 这些数据库都位于同一数据库服务器上 我希望来自 1 个
  • Laravel 5.5 多重身份验证路由问题

    尝试使用 Doctrine 而不是 Eloquent 让 Laravel 进行多重身份验证 我已经尝试了很多事情 但总是陷入困境 我目前定义了两个守卫 两个模型 两个登录控制器等 如果我启用其中之一 它们就会起作用 如果我同时尝试两者 则似
  • 让网站登录也能在 WordPress 上使用

    我使用 PHP 和 MySQL 开发了一个网站 该网站已经有登录和注册表单 myweb com 我已经在这个网址添加了 wordpressmyweb com blog 我想禁用 WordPress 上的登录和注册页面并强制用户使用我的 基本
  • Ember 模型中的自定义请求 url

    我正在尝试将 Ember 数据与已构建的 REST api 一起使用 它适用于顶级路由 例如我在 api 端有课程路由 如下所示 app get courses app controllers courses findAll app get
  • next-auth google 提供商无法正常工作,访问被阻止:此应用程序的请求无效

    这整个星 期我都在摸索 我已经尝试了几乎所有的方法 我正在尝试使用 next auth google 提供商 在 GCP 中 在授权网址和重定向网址中 本地主机 3000 真实域名网站 本地主机 3000 api auth callback
  • 创建持久身份验证 cookie 时出现问题:ASP.NET MVC

    好的 这是我创建身份验证 cookie 的代码 get user s role List
  • 运行玩笑测试时,Firebase 在signInAnonymously() 上抛出“auth/network-request-failed”

    我正在使用 firebase 为我的应用程序 使用 create react app 构建 编写一些测试 并且我正在尝试匿名登录我的测试数据库 但认证失败 然而 所有其他 Firebase 操作 CRUD 都工作得很好 我还可以从在浏览器中
  • ASP.Net-Core 中的自定义身份验证

    我正在开发一个需要与现有用户数据库集成的网络应用程序 我仍然想使用 Authorize 属性 但我不想使用身份框架 如果我确实想使用身份框架 我会在startup cs文件中添加类似的内容 services AddIdentity
  • 是否可以使用脚本标签加载车把模板?或者在 Ember.js 中以编程方式定义车把模板

    很简单 我不想在 html 文件中定义所有车把模板 我试过这个 但这没有用 我是否可以不以编程方式定义模板 甚至只是加载车把文件 以便我可以重用 而且我觉得这使事情更易于维护 我尝试用 ajax 加载它们并将它们附加到头部 这工作正常 我可
  • ActiveAdmin 使用 Devise Rails 登录两次

    我有一个Rails已设置使用的应用程序devise with User模型 我只是添加ActiveAdmin并且它使用单独的型号名称AdminUser 这个新模型也使用了设计 我遇到的问题是 当我去localhost 3000 admin
  • 生产中未使用快速会话设置 Cookie

    我的应用程序分为客户端和服务器 客户端是托管在 Now sh 上的前端 Nextjs 应用程序 服务器是使用 Express 创建并托管在 Heroku 上的后端 因此域是 client app now sh 和 server app he
  • 使用自己的 Web 应用程序 API - 使用 OAuth2 进行身份验证过程

    Overview 我目前正在为图像共享应用程序创建 API 该应用程序将在网络上运行 将来在移动设备上运行 我了解 API 构建的逻辑部分 但我仍然在努力满足我自己对身份验证部分的要求 因此 我的 API 必须可供全世界访问 具有访客访问权
  • 瓦廷 Windows 身份验证

    我正在尝试为使用集成身份验证的 Intranet 应用程序编写 Watin 测试 我尝试测试的网页打印 Page User Identity Name 这是我测试的一些代码 if Win32 LogonUser u UserName u D
  • 登录方式使用GINA定制

    我知道在 GINA 中找到大师并不容易 但我的问题最接近进程间通信 IPC 我用非托管 c 编写了我的自定义 GINA 我在其中包含了一个方法来检查用户尝试的指纹的有效性为了登录 该函数将调用正在运行的系统Windows服务中用C 编写的一
  • DMARC/SPF/DKIM 未使用第三方邮件进行身份验证

    我们最近为我们的域实施了 DMARC 记录 v DMARC1 p 隔离 pct 100 rua mailto 电子邮件受保护 cdn cgi l email protection 隔离 100 未经身份验证的电子邮件并将汇总报告发送给 我

随机推荐