0

使用用户资源是每个应用程序的重要组成部分,因此这是一项应该尽可能自动化的任务。至于 Ember,我找到了一个教程https://github.com/heartsentwined/ember-auth-rails-demo/wiki ,它描述了它如何与基于设计的身份验证系统进行通信。而且,哇,这简直是一个样板:) Rails4 的新设计是否发生了一些变化,或者事情是一样的?

4

1 回答 1

2

ember-auth在这里开发。


为 googlers编辑/更新:我现在已经构建了一个rails 4应用程序,带有deviseemberember-auth. 除了以下两个问题外,一切正常。

  1. devise >= 3.1 移除tokenAuthenticatable模块。所以我会在我的声明中Gemfile

    gem 'devise', '>= 3.0', '< 3.1' 
    
  2. ember-data正在远离ActiveModelSerializersjson - api。问题是,json-api它本身甚至不稳定。快速简便的解决方法是替换DS.RESTAdapterDS.ActiveModelAdapter,它遵循ActiveModelSerializers约定。它应该“正常工作”。

所以,是的,ember-auth确实支持rails4,因为它本身并没有破坏 BC 。


(上一个答案:)

我没有经验rails 4,但ember-auth它本身并不依赖于rails 3,或者实际上rails/devise特别是。唯一的期望是您的服务器公开的一组 API。[1] 文档描述了服务器 API 的期望。

至于使用 rails 作为后端,ember-data明确声明支持(和遵守) ,这为从模型中生成响应active_model_seriailzers提供了方便的方法。但是,由于身份验证操作不符合“标准”完整模型响应,因此教程本身会手工制作预期的响应。例子:jsonrailsRESTember-auth-rails-demo

def create
  # ...
  data = {
    user_id: resource.id,
    auth_token: resource.authentication_token,
  }
  if params[:remember]
    resource.remember_me!
    data[:remember_token] = remember_token(resource)
  end
  render json: data, status: 201
end

因此,为了rails 4兼容性,我会根据需要对devise兼容性、任何ActiveRecord更改以及一般其他 gem 兼容性进行更多调查。至于ember-auth,它仍将手工制作预期的响应,如文档中所述。

[1]:即使是这种期望也可以通过编写定制的adapters. 高级用法,但如果需要,我可以详细说明。

于 2013-06-10T14:00:02.453 回答