Tag: 设计

如何将门卫访问令牌作为json返回

我正在尝试为iOS应用程序创建一个登录系统,其中导轨后端由设备和门卫提供支持。 我想限制网络请求的数量,因此不希望必须从凭证中获取令牌,然后将用户详细信息作为单独的请求获取。 这是我目前的尝试: token = Doorkeeper::AccessToken.create!(application_id: @application_id, resource_owner_id: current_user.id, :expires_in => 168.hours) puts token.token render :json => {:user => current_user, :token => token.as_json(:include=> token)}, status: :ok, location: :users 然而,返回的是: {“user”:{“id”:2,”email”:”user3@test.com”,”created_at”:”2014-06-12T17:25:12.000Z”, “updated_at”:”2014-06-13T12:20:18.536Z”, “firstName”:”user”,”lastName”:”test”,”subscription”:null}, “token”:{“resource_owner_id”:2,”scopes”:[],”expires_in_seconds”:604800, “application”:{“uid”:”[Filtered]”}}} 因此,实际的access_token密钥不会被传回以允许我进行将来的调用。 我可以看到在DoorKeeper::AccessToken.as_json没有返回令牌本身,但token.as_json(:include=> token)仍然没有返回它。 有谁知道如何返回AccessToken,包括访问令牌本身,如json?

Rails 4设计登录为POPUP窗口

嗨,我使用设计我的用户身份validation 我已经按照各种教程在弹出窗口中获取登录但是我没有成功,任何人都可以告诉我们如何详细说明。 我已经尝试了各种教程,但没有任何工作,每一件事都重定向到登录页面。 我是铁路的新手请帮忙。 我无法在同一页面上登录 这是我的new.html.erb {:id => ‘login_form’}, :url => user_session_path, :remote => :true, :format => :json) do |f| %> true, :placeholder => “email”, :id => ‘login_email’ %> “password”, :id => ‘login_password’ %> 这是我的标题页面 Welcome :delete %> You are not signed in. :true %>

如何使用多个Active Admin实例来完成单独的模型

我有2个型号: 用户 供应商 我想提供2个独立的Active Admin界面。 他们都有设计路线: devise_for :users, ActiveAdmin::Devise.config devise_for :suppliers, ActiveAdmin::Devise.config (can I somehow say ActiveAdmin2::Devise.config) 用户可以访问产品,订单和供应商只能访问产品。 理想情况下,我想在应用程序中使用不同的文件夹并显示不同的数据。 用户/ order.rb ActiveAdmin.register Order do filter :email filter :created_at , :label => “Order Creation Date” filter :order_created 供应商/ order.rb ActiveAdmin.register Order do filter :email 有没有办法初始化2个ActiveAdmin类并并行运行它们? 还有其他更好的方法可以让它在同一个网站/应用程序下运行吗?

omn​​iauth-facebook cannnot获取电子邮件地址

我创建了新的Rails应用程序并安装了Devise和omniauth-facebook gem。 并将我的Facebook App设置为测试环境。 所以,我通过Facebook登录并注册了我的新Rails应用程序,但request.env不包含电子邮件地址.info。 返回request.env [‘omniauth.auth’] { “provider” => “facebook”, “uid” => “xxxxxxxxxxxx”, “info” => { “name” => “xxxxxxx”, “image” => “http://graph.facebook.com/xxx/picture” }, “credentials” => { “token” => “tokenstring”, “expires_at” => xxxxxxxxx, “expires” => true }, “extra” => { “raw_info” => { “name” => “xxx xxxx”, “id” => “xxxxxxxxx” } } } 它机架request.env [‘omniauth.auth’] […]

在Rails应用程序中为Devise视图/模型添加其他字段和validation

我生成了默认的设计视图: rails generate devise:views 然后我在views/devise/registrations/new.html.erb表单中添加了一个username views/devise/registrations/new.html.erb 。 目前,仅进行email和passwordvalidation。 如何validationusername段的状态和唯一性? 我是否需要在User模型中添加一些内容?

设计在post上登出到不同的路线

我和Devise有一个非常奇怪的问题。 我有一个路由设置,接受get和post请求。 在获取时,它显示表单,在post上,它提交它。 当我向路线发送XHR后,当它到达那里时,它告诉我我没有登录,并且发送给我一个未经授权的401。 之后我必须登录,然后我可以再试一次。 我一直试图弄清楚这几个小时,我能够弄清楚的是我的控制器方法没有被调用。 我在过滤之前输入了我自己的自定义身份validation,它刚刚确认,当我的rails应用程序被调用时,用户不再登录。 此外,如果我打开表格,但不提交,我可以继续正常。 在那个XHR的某个地方,它正在制定设计。 如果您有任何想法请帮忙,我不知道现在发生了什么…… 谢谢 斯科特 编辑:添加相关的代码片段 的routes.rb match ‘projects/:p/filebox’ => ‘projects#show’, :via => [“get”,”post”], :as => ‘project_filebox’ projects_controller.rb before_filter :authenticate_user! # <— By the time this gets called, the user is logged out def show # ^^^^ Doesnt get called. Logger shows that it recognized route though logger.debug […]

设计/ Rails – 如何只允许管理员为其他人创建帐户?

我正在使用设计作为我的身份validation解决方案,现在我正在考虑授权。 在我的项目中,我(管理员)是唯一有权为其他人创建帐户的人。 我想知道是否有办法在没有太多黑客的情况下做到这一点。 实际上,如果Devise已经登录,则Devise不允许用户访问注册页面。 感谢您的建议!

使用rspec进行集成测试并设计sign_in env

我正在使用设计配置使用omniauth facebook登录集成。 从我的spec/request测试中调用sign_in方法时,我得到: undefined method `env’ for nil:NilClass 规格: describe FacebookController do include Devise::TestHelpers it “should display facebook logged in status” do @user = User.create(:id => “123”, :token => “token”) sign_in @user visit facebook_path end end

使用Devise管理用户管理

我是第一次尝试Devise。 我想做的其中一件事是为管理员用户提供创建,查找和编辑用户的界面。 这是我可能出错的地方。 我创建了一个PeopleController类,它inheritance自ApplicationController,它列出了人员并提供了创建和更新用户的方法和视图。 除了一个例外,一切正常。 当管理员用户更新他们自己的记录时,会话被清除,他们必须在保存后再次登录。 在这个应用程序中,我没有使用可注册模块。 只有管​​理员用户才能创建新用户。 设计用户管理工具的正确方法是什么。 创建我自己的控制器似乎是错误的选择。 在此先感谢您的帮助。

为新用户设计Omniauth“encrypted_pa​​ssword可能不为NULL”

我正在使用Devise与Omniauth让用户通过Facebook登录我的应用程序。 我使用Railscast教程来启动并运行它。 如果用户已经是我的网站的成员通过Facebook进行身份validation工作正常。 在使用facebookvalidation新用户时会出现此问题。 当它为我的用户模型创建一个新用户时,我得到“users.encrypted_pa​​ssword可能不是NULL”错误。 我无法弄清楚如何从Facebook信息将密码传递给用户模型。 这就是我所拥有的: authentations_controller.rb class AuthenticationsController omniauth[‘provider’], :uid => omniauth[‘uid’]) flash[:notice] = “Authentication successful.” redirect_to authentications_url else user = User.new user.apply_omniauth(omniauth) if user.save flash[:notice] = “Signed in successfully.” sign_in_and_redirect(:user, user) else session[:omniauth] = omniauth.except(‘extra’) redirect_to new_user_registration_url end end end user.rb def apply_omniauth(omniauth) self.email = omniauth[‘user_info’][’email’] if email.blank? authentications.build(:provider => omniauth[‘provider’], :uid […]