Tag: 身份validation

设计:无法关闭require_no_authentication?

当我尝试限制注册访问时,似乎不可能。 我试过了 class RegistrationsController < Devise::RegistrationsController skip_before_filter :require_no_authentication end 在app / registrations_controller.rb中并​​将路由更改为 devise_for :accounts, :controllers => { :registrations => “registrations” } 这不起作用。 任何建议为什么以及我能做什么/我应该在哪里看,将不胜感激。 编辑: 不起作用意味着:当我在注销时尝试访问/ accounts / sign_up时,它确实有效,但我应该重定向到sign_in。 解决方法: class RegistrationsController < Devise::RegistrationsController skip_before_filter :require_no_authentication private def authenticate_account!(opts={}) opts[:scope] = :account warden.authenticate!(opts) # if !devise_controller? || opts.delete(:force) end end 这将删除跳过对每个Devise控制器的身份validation的硬编码检查。 代码来自lib/devise/controllers/helpers.rb 。

Devise – Omniauth – 如果用户通过Facebook登录,则隐藏密码字段

使用Devise与Omniauth我成功地允许用户使用他们的Facebook帐户登录。 在Omniauth wiki的帮助下,我还可以禁用在编辑帐户时输入密码。 我遇到的当前问题是如果他们通过Facebook registrations#edit ,则在我的registrations#edit视图中隐藏密码字段。 作为两个gem的新手我还在努力调整。 因此,在设置必要的辅助方法时,我有点不知所措。 根据维基的指示,这是我的注册控制器的样子: class RegistrationsController true redirect_to after_update_path_for(@user) else render “edit” end end private # check if we need password to update user data # ie if password or email was changed # extend this as needed def needs_password?(user, params) user.email != params[:user][:email] || params[:user][:password].present? || params[:user][:password_confirmation].present? end protected […]

有关HTTP身份validation方案的建议(使用请求标头)

我在Heroku上托管了一个rails应用程序,它限制了使用代理服务的访问权限。 外部服务器充当所有请求的中介并处理用户身份validation。 用户通过身份validation后,服务器(我认为LDAP)会将用户名添加到请求标头中,并将其重定向到我的应用程序。 我想使用请求标头中的用户名来validation我的应用中的用户。 基本上,如果用户不存在,我会创建一个用户名(不需要密码),如果不是,我只会登录。我将把用户存储在我的应用程序的数据库中。 我该怎么做? 为此可以使用Devise吗? 编辑 :我使用Devise /自定义Warden策略,如下所示: # config/initializers/my_strategy.rb Warden::Strategies.add(:my_strategy) do def valid? true end def authenticate! if !request.headers[“my_key”] fail!(“You are not authorized to view this site.”) redirect!(“proxy_url”) else username = request.headers[“my_key”] user = User.find_by_username(username) if user.nil? user = User.create(:username => username) end success!(user) end end end #config/initializers/devise.rb config.warden do |manager| manager.default_strategies(:scope […]

首次进入站点的根时设计身份validation错误

当用户输入我们网站的根目录或注销时,Devise身份validation显示“您需要首次登录或注册才能继续”。 页面重新加载后,此消息消失。 我们网站的根目录设置为控制器,它具有: before_filter :authenticate_user! 我们需要这个控制器作为根。 如何消除此消息?

使用Stripe with Devise for Ruby on Rails订阅

我试图将Stripe的定期支付系统与Devise集成,使用Ryan最近的Railscast作为指南( http://railscasts.com/episodes/288-billing-with-stripe?view=asciicast )。 我想使用现有的用户模型,而不是订阅模型。 我过去添加条带键,将表单字段添加到/ users / sign_up,在头部添加js和meta标签,我在资产中创建了users.js.coffee文件。 当我提交表单时,我没有收到任何错误,并且没有任何类型的反馈意见提交给Stripe。 日志在订阅方面根本没有显示任何内容。 相反,我只是得到一个用Devise创建的用户。 知道我错过了什么步骤或者我错误地命名了哪个文件? 谢谢, – 马克

PG :: ConnectionBad:FATAL:用户“alphauser”的密码validation失败

我正在为我的大学研究Rails中的应用程序。 申请是由前一年的学生开始的,现在是我和我的同事转而继续工作。 我从github上获取了应用程序,我运行了bundle install,但是什么时候运行rake db:migrate我得到了这个PG::ConnectionBad: FATAL: password authentication failed for user “alphauser” 。 在database.yml我有这些 development: adapter: postgresql encoding: unicode database: alpha_database host: localhost pool: 5 username: alphauser password: alphapassword 我不知道在这种情况下该怎么做。

用于noob的Rails身份validation策略

希望这不是太广泛,但经过大量的谷歌搜索,我不知道从哪里开始。 我正在寻找介绍性/ noob概述,以帮助我开始构建rails 3应用程序的身份validation实现。 基本技术要求: Rails 3应用程序托管在第三方服务(heroku)上 需要使用特定的外部私有SSO服务来validation用户。 rails应用程序中没有本地用户数据库或模型。 身份validation是基于令牌的,这意味着需要读取一个特殊的cookie,将令牌传递回SSO服务器(而不是基于rails)。 我无法控制SSO服务器或基础架构。 SSO服务器的信任是隐式的,不希望维护用户,密码或敏感信息的本地数据库。 用户信息仅在会话期间存在且SSO服务器具有权威性。 会话令牌信息是基于cookie的,并且在浏览器会话期间存在。 我正在寻找基本的示例/教程/策略/解释,通过上述设置,该过程如何在rails中工作。 我希望这个过程对于用户来说是无缝的,工作流基本上是这样的: 导航到rails app – > 将未经身份validation的用户重定向到SSO服务器 – > 通过远程SSO服务器登录和validation – > 回调/重定向到rails app – > 捕获从SSO服务器传回的用户信息,并在rails app中加载受保护的资源 策略完全是使用私有SSO资源自定义的,并且不使用良好发布的身份validation机制(换言之,不是Facebook,Google,Twitter,OAuth等)。 任何有关术语,连贯的教程,示例的帮助将不胜感激。 编辑/更新: 更具体地说,我也在寻找如何创建omniauth自定义开发人员策略的良好文档。 一些教程介绍了与任意SSO服务器通信所需的代码类型,从cookie中读取令牌,以及完成身份validation握手和回调/重定向。

如何在ActionCable rails-5-api app中获取current_user?

为什么我无法在通道中检索current_user或如何检索current_user ? 我该用什么? Rails 5.0.1 –api (我没有任何意见NOR使用咖啡) 我使用react-native app来测试这个(没有授权就可以正常工作) 我没有使用devise for auth (我使用JWT而不是使用Knock ,所以没有cookie) 尝试在rubydoc.info中描述的ActionCable通道中获取current_user 代码看起来像 class MessageChannel < ApplicationCable::Channel identified_by :current_user def subscribed stream_from 'message_' + find_current_user_privileges end def unsubscribed # Any cleanup needed when channel is unsubscribed end protected def find_current_user_privileges if current_user.has_role? :admin 'admin' else 'user_' + current_user.id end end end 运行它,我得到这个错误: […]

使用AuthlogicvalidationAPI

我在我的应用程序中使用Authlogic进行身份validation,使用标准的User和UserSession模型。 我正在为我的应用程序构建API,并且我希望使用单个访问令牌对API访问进行身份validation。 在我的应用程序中,每个用户都belongs_to一个公司,其中有很多用户。 API用于访问属于公司的资源,因此我想为整个公司使用一个访问令牌。 我最初的想法是向公司添加一个虚拟用户,该用户只有访问API的权限,该公司将使用该访问令牌来授予对API的访问权限。 我似乎无法使用AuthLogic将用户的电子邮件和密码设置为空白,因此这不是平移。 我的下一个想法也许是我可以将acts_as_authentic添加到公司本身,但我不确定这是如何工作的。 我真的想使用Authlogic作为解决方案,因为它与我的ACL很好地集成,并且似乎具有我主要内置的function。 是否有可能有两个act_as_authentic模型? Authlogic中是否有一种我没想到的更简单的方法? 有没有办法可以使用虚拟用户的API密钥? 我该怎么做?

无法在登录表单上放置电子邮件地址字段(Authlogic)

所以我使用这个user_sessions/new视图使Authlogic正常工作: user_session_path do |f| %> Invalid username or password ‘margin-right: 10px’ %> 但是当我改变的时候 至 加载视图时出现此错误: undefined method `email’ for # 但是我的用户表当然有一个email字段等。