问题标签 [sorcery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 巫术的问题
我遇到了多个问题..
1.当我启动rails服务器并访问时http://0.0.0.0:3000/users
,我可以看到我想要的所有用户但是,当我点击登录按钮时,输入我的凭据,然后尝试登录我会看到这个页面..
我很困惑,因为我已经在 new.html.erb 页面上?
2.我正在使用魔法和simple_form gem,然后我跑了
但是现在我在 db/migrate 中有两个迁移文件,我不确定我需要保留哪一个,因为我有一个 user_sessions 控制器和一个 users 控制器?
我所有的源代码都可以在https://bitbucket.org/jasonriddle/stubmoney获得
任何帮助,将不胜感激。
ruby-on-rails - 巫术规格运行非常缓慢
我正在尝试设置我的应用程序以使用 Sorcery。当我添加authenticates_with_sorcery!
到我的用户模型时,我的规范开始运行非常慢(大约每秒一个)。是否有某种配置或设置可能导致巫术出现这种情况?
这是我的用户模型:
和我的用户工厂:
ruby-on-rails - 用户注册 Rails 和 Sorcery 后重定向到上一页
我有一个使用巫术进行用户身份验证的小型 Rails 3 应用程序。当未经身份验证的用户访问页面“A”时,除非他们登录或注册,否则他们将被限制查看页面的某些部分。
如果他们选择“注册”链接,他们将被带到一个单独的注册页面,成功注册后,他们将登录并重定向到主页。我需要将它们引导回“A”页。
这是我的 User.create 控制器:
我假设这redirect_back_or_to
就是魔法应该发生的地方,但我错过了一些东西——目前这只是重定向到主页。有没有一种简单的方法可以做到这一点?我是否需要将当前页面参数传递给控制器或其他东西?
javascript - 巫术/水豚:无法使用 :js => true 登录
我已经使用水豚一段时间了,但我是巫术新手。我有一个非常奇怪的问题,如果我在没有 Capybara 的 :js => true 功能的情况下运行规范,我可以正常登录,但是如果我尝试在规范上指定 :js => true ,则找不到用户名/密码。
这是身份验证宏:
在这样的规格中调用:
上面的代码工作正常。但是,如果我从(在这种情况下)更改场景规范
到
登录失败并出现“不正确的用户名/密码”组合。从字面上看,唯一的变化是 :js => true。我正在使用默认的 capybara javascript 驱动程序。(加载 Firefox)
Any ideas what could be going on here? I'm completely stumped. I'm using Capybara 2.0.1, Sorcery 0.7.13. There is no javascript on the sign in page and save_and_open_page before clicking 'sign in' confirms that the correct details are entered into the username/password fields. Any suggestions really appreciated - I'm at a loss.
ruby-on-rails - 使用 Sorcery gem 使用自定义参数登录 Facebook oauth
我正在尝试将自定义参数传递给 Facebook oauth url 以将其返回到回调中。我知道这是可能的,但我正在使用 Sorcery gem,我需要动态设置参数,我的意思是我不能在 sorcery.rb 初始化文件中定义它,就像现在一样:
我需要在我的控制器中定义,我该如何使用这个 gem?
ruby-on-rails - 使用子域设置 session_store 会干扰 Twitter 登录。为什么?
在开发环境中。Twitter API 要求我们从 0.0.0.0 而不是 localhost 或任何其他主机名登录。
但是,我们也在通过子域测试我们的本地应用程序。在session_store.rb
:
每次我们尝试登录 Twitter 时,都会得到401 Unauthorized
. 如果我们设置:domain => '0.0.0.0'
,我可以很好地登录 Twitter。有:
没有这:domain =>
部分,我可以毫无问题地登录 Twitter。
为什么设置:domain
insession_store.rb
会干扰 Twitter 登录?
ruby-on-rails - Sorcery 和 Authlogic 有什么区别?
Rails Sorcery 身份验证 gem 和 Authlogic 之间的最大区别是什么。它们都允许您制作自己的控制器和视图。Ryan Bates 谈到他更喜欢魔法而不是 Authlogic,但我不明白他这样做的原因?您如何看待这些,我的意思是它们之间最大的区别是什么?
ruby-on-rails - Rails 控制器参数属性未定义
回答。见文末。
我主要是一名 Java 开发人员,并且对 Ruby on Rails 相当陌生。我已成功完成 railstutorial.org 上的教程。所以我让这个工作一次。当我第二次开始阅读本教程时出现了我的问题,但这次尝试用 Sorcery gem 替换身份验证。我的主要参考是railscasts.org 上的第 283 集。其中一些正在工作,但是当我尝试登录时,我收到一条错误消息:
SessionsController#create 中的 ActiveRecord::PreparedStatementInvalid
[:email] = :login 中的 :email 缺失值
这是一件很难搜索的事情,因为它非常具体,但在很多地方都出现了非常笼统的词。我认为当我让它工作时,我正在以与原始教程相同的方式做事。下面是我的views/sessions/new.html.erb,它和原来的教程差不多。
这是我的 session_controller.rb 中的 create 方法,由于巫术,它与教程略有不同,但我不知道为什么 params 引用的工作方式与教程中的不同:
rails cast 只使用 params[:email] 但那是因为他使用 form_tag 而不是 form_for 并更改了要使用的参数。
我真的迷路了。不知道为什么它与教程的工作方式不同。任何帮助将不胜感激。让我知道我是否应该提供任何其他信息。谢谢。
编辑:
添加了上面的完整错误。一定是巫术的登录方式或者我的数据库有问题。参数很好。这是完整的堆栈跟踪(回到我的代码部分。它真的太长了。)
堆栈跟踪:
activerecord (3.2.11) lib/active_record/sanitization.rb:141:in `block in replace_named_bind_variables'
activerecord (3.2.11) lib/active_record/sanitization.rb:135:in `gsub'
activerecord (3.2.11) lib/active_record/sanitization.rb:135:in `replace_named_bind_variables'
activerecord (3.2.11) lib/active_record/sanitization.rb:115:in `sanitize_sql_array'
activerecord (3.2.11) lib/active_record/sanitization.rb:28:in `sanitize_sql_for_conditions'
activerecord (3.2.11) lib/active_record/relation/query_methods.rb:324:in `build_where'
activerecord (3.2.11) lib/active_record/relation/query_methods.rb:136:in `where'
activerecord (3.2.11) lib/active_record/querying.rb:9:in `where'
巫术 (0.7.13) 库/巫术/模型/适配器/active_record.rb:32:in `find_by_credentials'
巫术 (0.7.13) lib/sorcery/model.rb:108:in 'authenticate'
巫术 (0.7.13) lib/sorcery/controller.rb:33:in `login'
app/controllers/sessions_controller.rb:8:in `create'
我想我太新了,不能马上回答我自己的问题。自己修好了:
在 sorcery.rb 中,我有:
user.username_attribute_names = '[:email]'
显然,引号不应该在那里。我对文件中的评论感到困惑。进行更改后,我需要重新启动服务器才能使更改生效。
ruby-on-rails - 重定向并登录或登录并重定向?
简单的问题。什么是首选,为什么,或者根本不重要?魔法宝石示例:
或者
只是一个地方的跳过,一行可能并不重要,但什么更好,更安全,为什么或它真的不重要?
ruby-on-rails - 使用重定向,如果多次
我的问题实际上很简单,我如何进行创建操作来检查用户是否已登录,以及她/他是否被重定向到仪表板,而不是呈现他们有链接和内容的索引页面并注册。还有为什么下面的代码不起作用。
类用户控制器 < 应用控制器