Tag: 设计

限制使用Google OAuth2.0登录Ruby上的特定白名单域名

编辑:我改变了我想要这样做的方式我认为我将使用MySQL表将设计登录列入白名单。 更改后的问题发布在此处: 使用Ruby限制使用Google OAuth2.0登录并设置为特定白名单表 好吧所以我试图在使用Devise和Omni-Auth2并且只有google的rails网站上获取我的ruby的受限身份validation。 到目前为止一切正常,但我只希望接受来自某个域的电子邮件。 无论如何我都愿意这样做。 我做了一些谷歌搜索,但似乎一些PHP用户比我更多的本地文件,可能是因为在本地使用谷歌API客户端? 我并不完全确定,因为我对编码一般都很陌生并且惊讶于我做到了这一点。 以下是一个示例: 使用Python的Google Oauth2.0:如何限制对特定域的访问? 在这里: 使用Google OAuth2.0将登录电子邮件限制为特定域名 两者似乎都使用“高清:域名”或类似的东西,但似乎有问题加上我不确定我会如何在我的应用程序中暗示它。 现在获取更多信息,我只使用gem devise和omniauth-google-oauth2( https://github.com/zquestz/omniauth-google-oauth2 )我觉得这是一种方法来处理这个gem,但仍然不完全确定。 如果我可以发布任何更多信息让我知道,任何帮助将不胜感激。 我的omniauth_callbacks_controller: class User::OmniauthCallbacksController “Google” sign_in_and_redirect @user, :event => :authentication else session[“devise.google_data”] = request.env[“omniauth.auth”] redirect_to new_user_registration_url end end end

设计:创建没有密码的用户

在我们的应用中,我们有普通用户。 但是,我们希望能够发出邀请,邀请某些人。 请注意,邀请直接与用户相关联,因为我们希望能够为这些用户设置某些设置。 (我们正在将客户从旧软件缓解到新软件)。 所以: 管理员应该能够创建新用户并更改其设置。 当有人使用他们的invitation_token跟踪链接时,他们应该会看到一个表单,他们可以为其帐户设置密码。 我遇到的问题是,如何启用管理员创建用户帐户,绕过正常的密码validation。 如果需要设置默认密码,这将是一个可怕的解决方案,因为这会产生严重的安全漏洞。 如何在没有提供密码的情况下在Devise中创建新用户?

Devise + Omniauth:未定义的方法`user_omniauth_authorize_path’

我一直在关注facebook的omn​​iauth + devise集成指南,当我点击链接登录facebook链接时,我一直收到此错误。 user_omniauth_authorize_path #<#:0x000000035ea490>未定义方法user_omniauth_authorize_path #<#:0x000000035ea490> 我已经仔细检查了指南中的代码,我似乎无法弄清楚问题是什么。 我的gemfile: source ‘https://rubygems.org’ gem ‘sendgrid’ gem ‘omniauth-facebook’ gem ‘gravatar’ gem ‘will_paginate’ gem ‘faker’ gem ‘devise’ # Bundle edge Rails instead: gem ‘rails’, github: ‘rails/rails’ gem ‘rails’, ‘4.2.6’ # Use postgresql as the database for Active Record gem ‘pg’, ‘~> 0.15’ # Use SCSS for stylesheets gem ‘sass-rails’, ‘~> […]

设计config.timeout_in无法正常工作

我无法在initializers / devise.rb中使用设计会话超时来超时会话 我设置 config.timeout_in = 1.minute 在initializers / devise.rb中,我与一个用户签约并保持闲置2分钟。 这假设使当前会话无效并再次提示询问用户凭据但会话永远不会消失。 我做错了什么或遗失了什么? 谢谢

用shoulda测试设计

我在使用shoulda测试设计方面遇到了一些困难: 2) Error: test: handle :index logged as admin should redirect to Daily page. (Admin::DailyClosesControllerTest): NoMethodError: undefined method `env’ for nil:NilClass devise (1.0.6) [v] lib/devise/test_helpers.rb:52:in `setup_controller_for_warden’ 我在test_helper中有这个: include Devise::TestHelpers 想法? 提前致谢, 克里斯提

使用Devise before_action:authenticate_user! 没有做任何事

我想要在我的Rails 4网站上的所有页面上登录。 在ApplicationController中我添加了before_action :authenticate_user! ,但它根本不做任何事情。 我试图添加相同的before_action :authenticate_user! 到另一个控制器,它工作正常。 我是否需要对ApplicationController执行其他操作,以使所有操作都需要登录(除了注册/登录)?

设计帐户解锁返回“解锁令牌无效”

我有一个标准的设计实现。 一切正常,除了帐户解锁(锁定工作正常)。 我可以使用unlock_access!在控制台中解锁帐户unlock_access! 。 我也可以使用User.find_by_unlock_token找到该帐户。 但是, UnlocksController#show – 具体来说, resource_class.unlock_access_by_token(params[:unlock_token]) – 返回“Unlock token is invalid”错误。 任何帮助将不胜感激。 谢谢!

设计确认无法在最新版本中使用

我最近从Devise 1.2升级到1.4.9,除了我的确认模块外,一切似乎都有效。 电子邮件以及整个过程都有效。 但确认页面始终为空白。 它工作并确认电子邮件帐户,但它不会重定向用户并引发406错误。 对于错误确认尝试,它也是如此。 路由似乎工作正常,我已在我的用户模型中指定确认,并且没有其他任何更改。 有任何想法吗? 我是否遗漏了一些设置或需要更新1.4.9的内容? UPDATE 这似乎是生成URL的问题。 由于某些未知原因,它使用用户名前置确认URL? 这导致它破裂。 但我仍然不确定如何解决它。 HTTP://本地主机:5000 /用户/ confirmation.someusername confirmation_token = R7apAPhC5c3rszvhsowp 上面的URL中的用户名导致进程无法正常工作。 我检查了1.2(有效)控制器和新版本之间的差异。 1.2 # GET /resource/confirmation?confirmation_token=abcdef def show self.resource = resource_class.confirm_by_token(params[:confirmation_token]) if resource.errors.empty? set_flash_message :notice, :confirmed sign_in_and_redirect(resource_name, resource) else render_with_scope :new end end 1.4.9 # GET /resource/confirmation?confirmation_token=abcdef def show self.resource = resource_class.confirm_by_token(params[:confirmation_token]) if resource.errors.empty? set_flash_message(:notice, […]

main的局部变量或方法`config’:Object(NameError)

我正在关注整合Omniauth Twitter + Devise http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/的这篇文章,我遇到了阻碍我的问题启动我的rails应用程序。 /Users/javier/Desktop/definitive/config/environment.rb:8:in `’: undefined local variable or method `config’ for main:Object (NameError) from /Users/javier/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require’ from /Users/javier/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `block in require’ from /Users/javier/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency’ from /Users/javier/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require’ from /Users/javier/Desktop/definitive/config.ru:3:in `block in ‘ from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval’ from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize’ from /Users/javier/Desktop/definitive/config.ru:in `new’ from /Users/javier/Desktop/definitive/config.ru:in `’ from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval’ from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string’ from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:40:in […]

Rails / Devise – 确定用户会话何时到期

当使用timeoutable于Devise的timeoutable模块时,如何确定当前用户会话到期之前的时间长度? 目标是在所有响应中包含此值,以便客户端脚本可以使用它。 我认为Devise在内部使用Warden进行身份validation,但我没有找到任何解释如何将会话到期时间拉出Warden深度的东西。