【问题标题】:ember-simple-auth-devise not authenticatingember-simple-auth-devise 不进行身份验证
【发布时间】:2015-02-04 22:44:11
【问题描述】:

我有一个 Ember CLI 前端应用程序和一个使用 Devise 进行身份验证的 Rails 应用程序。我以为我的设置正确,但我遇到了一些问题。

1) 提交登录表单后,我没有被重定向。如果我手动单击身份验证后面的链接,它会看到我已通过身份验证。

2) 重新加载页面后,本地存储中的会话信息不会保留。

有什么想法吗?

提前致谢

【问题讨论】:

    标签: ember.js devise ember-simple-auth


    【解决方案1】:

    1) 登录后默认重定向到索引路由,在索引路由的 beforeModel 钩子中粘贴一个调试器并验证这一点

    2) 在您的 config/environment.js 中存在类似的内容,但由于您使用的是设计插件而不是您自己的自定义授权方,因此不能 100% 确定

    ENV['simple-auth'] = {
      localStorageKey: 'my-app-session',
      store: 'simple-auth-session-store:local-storage',
      authorizer: 'authorizer:devise'
    };
    

    这是一个模糊的问题,如果您使用令牌或 cookie 等,需要更多代码和信息吗?

    【讨论】:

    • 嗨 Flylib,对不起,我知道我可能应该提供更多信息,但不确定什么是相关的。看起来它是一个 rails-csrf 库的东西。删除它修复了它。但是,当我重新加载页面时,我仍然会丢失会话。它不会保留在本地存储中。
    • 发生在 Chrome、Safari 和 Firefox 中。这是登录后本地存储的内容: {"authenticator":"simple-auth-authenticator:devise","sessions":[["trainer_token","FZHxDS_CB-VN1uc74NNo"],["trainer_email",”* *********@gmail.com"]]}
    • 如果您使用 ember-cli,请尝试将上面的代码粘贴到您的 environment/config.js 中
    • 试试这个 ENV['simple-auth-devise'] = { resourceName: 'trainer' };
    • 您的问题似乎是您将培训师作为关键而不是用户,请阅读此处stackoverflow.com/questions/25215010/… 和此处github.com/simplabs/ember-simple-auth/tree/master/packages/…
    【解决方案2】:

    啊,我想通了。看起来是因为我在我的 rails 应用程序中使用了 activemodel 序列化程序,它包括根(在这种情况下为会话:因为响应是从会话控制器提供的)。我告诉它不要使用 ActiveModel 序列化器,渲染 json:数据,状态:201,序列化器:nil 成功了!我猜 AMS 和自定义资源名称不能很好地配合使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 2018-09-24
      相关资源
      最近更新 更多