问题标签 [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.

0 投票
3 回答
329 浏览

ruby-on-rails - 未定义的方法“authenticates_with_sorcery!” 对于用户:类

好的,我正在使用魔法宝石登录主机。而且我也想在主引擎中使用它,但是每当我在可安装引擎中调用用户模型时,它都会说

当我说打电话时,就像

顺便说一句,我正在使用 mongoid 4.0.0 和 rails 4.1

0 投票
3 回答
2627 浏览

ruby-on-rails - 无效盐(BCrypt::Errors::InvalidSalt)

自从升级到 Ruby 2.2.0 后,我在测试中收到以下消息:

我没有发现任何升级通知可以帮助我理解问题。我正在使用 Rails 4.1.8 和 Sorcery 0.8.6。

还有其他人有这个问题吗?

更多细节:

我使用的是巫术而不是设计。加密的数据就是密码。这一切都始于 Cucumber 测试,在 2 种情况下:当我曾经将 @user 发送到邮件程序以准备邮件数据时。这是代码:

UserMailer.passphrase_reset_notification(@user).deliver

这产生了我在初始消息中写的消息的异常。作为一种解决方法,而不是发送@user,我发送了我需要的字段并且它有效。这是新代码:

UserMailer.passphrase_reset_notification(@user.name, @user.email).deliver

但第二种情况是注册。它在开发中失败了,我不得不将 :salt 添加到 user_params 来修复它。但它不能解决测试环境中的问题。

没有堆栈跟踪,只有一条衬里消息,其中包含导致错误的场景行。

然后我按“注册”无效盐 (BCrypt::Errors::InvalidSalt) ./app/controllers/users_controller.rb:66:in block in create' ./app/controllers/users_controller.rb:64:increate' ./app/controllers/application_controller.rb:120:in scope_current_tenant' ./features/step_definitions/web_steps.rb:53:in/^(? :|I )press "([^"]*)"$/' features/users/sign_up.feature:149:in `然后我按 "Sign up"'

我删除了用户表中“salt”字段的“null:false”,正如社区成员在一个或多或少类似问题的帖子中所建议的那样,它也没有帮助。

我的主要问题仍然相同:Ruby 新版本(2.2.0)与此有什么关系?如果我升级产品,还有什么其他惊喜?

0 投票
1 回答
179 浏览

ruby-on-rails - 从激活令牌加载的 Rails 加载不加载

我尝试从激活令牌加载用户以激活他,但不知何故它失败了:

尽管用户存在并且正在打开并且具有激活令牌,但 load_from_activation_token 找不到它。是否还有其他激活用户的可能性?

0 投票
1 回答
505 浏览

ruby-on-rails - 巫术中的自定义用户激活方法

我在 Rails 4 应用程序中使用魔法宝石。我需要配置巫术说我可以配置的两个属性,但是我不知道如何实际配置这些值。

有问题的两个属性是:

如何自定义这些方法名称?

0 投票
1 回答
424 浏览

ruby-on-rails - 巫术未定义方法`login_at'

我正在尝试通过本指南https://github.com/NoamB/sorcery/wiki/External获得 Twitter 和 Facebook 的身份验证,但我遇到了问题 -undefined method 'login_at' for #<OauthsController:0xa99d6bc>.坦率地说,我在指导。我该如何解决?

0 投票
2 回答
1648 浏览

ruby-on-rails - Rails Sorcery 在没有密码的情况下更新模型的属性

我在 rails 4.1 应用程序中使用巫术进行用户身份验证。一切正常。但是当我尝试更新用户模型的特定属性(通过巫术验证)时,我收到一个错误,即密码为空且太短。

这是控制台的一个片段

这是我的模型代码
app/models/user.rb

我的控制器代码
app/controllers/users_controller.rb

还有我的更新表单
app/views/users/edit.html.erb

如果我从表单中删除密码字段,我会收到有关密码为空及其长度的错误。这是与巫术有关还是我与rails本身缺少的东西?有没有更好的方法来更新让我们说只有电子邮件字段而不影响其他任何东西?

0 投票
1 回答
1081 浏览

ruby-on-rails - 魔法宝石 - 如何使用 redirect_or_back_to 方法

当未登录用户点击此页面上的“Deja Tu Opinion”按钮时:

https://github.com/Yorkshireman/pamplona_english_teacher2/blob/create_testimonials/app/views/static_pages/home.html.erb

...用户被重定向到登录页面,并显示一条消息“您必须先登录或注册才能继续”。我已经做到了——这里没问题。

'Deja Tu Opinion' 按钮指向 new_testimonial_path。但是,如果他们没有登录,他们会被重定向到登录页面。我通过编写“require_login”方法并放入应用程序控制器来实现这一点:

然后我在我的推荐控制器中声明了它:

当他们然后登录时,他们被重定向到 root_path:

但是......我想要发生的是让他们在这种情况下被引导到 new_testimonial_path,而不仅仅是回到 root_path。

因此,总而言之,一个未登录的用户点击“Deja tu opinion”按钮(意思是“写你自己的推荐信”),因为他们没有登录,所以他们被定向到 new_user_session_path。然后他们登录并被带回root_path,然后他们必须再次向下滚动页面并单击“Deja tu opinion”按钮,然后将他们带到new_testimonial_path。

想要发生的是未登录用户单击“Deja tu opinion”按钮,并且由于他们未登录,因此被定向到 new_user_session_path。然后他们登录并被定向到 new_testimonial_path (因为这是他们首先想要的)。

我使用了 Sorcery gem,我很确定有一种方法可以实现这一点,称为“redirect_back_or_to”,但我只是无法从文档中弄清楚如何使用它。

整个应用的代码在这里(create_testimonials 分支):https ://github.com/Yorkshireman/pamplona_english_teacher2/tree/create_testimonials

巫术的文档: https ://github.com/NoamB/sorcery

希望你能帮忙!

0 投票
1 回答
273 浏览

ruby-on-rails - 魔法宝石 - 登录?总是返回 false

我正在尝试使用 Rails 制作一个非常简单的 Web 应用程序,并且我正在使用 Sorcery gem 来验证用户身份。我在他们的 GitHub 页面上按照这里的教程进行操作,但我一无所获。

我有 2 个我认为可能相关的问题。首先,当我使用这个 before_filter 时skip_before_filter :require_login, only: [:index, :new, :create],用户仍然可以在不登录的情况下访问该页面。

另一个问题是,当用户尝试登录时,他们不会被重定向,当我使用内置的 helperlogged_in?时,它总是返回 false。即使登录时没有错误消息。

我已经添加了适当的控制器,如果您需要查看其他内容,请告诉我。

谢谢。

user_sessions_controller.rb

users_controller.rb

application_controller.rb

0 投票
1 回答
132 浏览

ruby-on-rails - 带有巫术和0auth的未定义方法'login_at',rails 4

我正在尝试使用此 Rails 项目设置 Oauth,但每次在我的视图中单击“使用 ... 登录”时,它都会为“login_at”呈现未定义的方法错误。我的巫术配置文件包含特定的外部子模块

Rails.application.config.sorcery.submodules = [:remember_me, :external]

但我仍然无法克服那个错误,任何帮助将不胜感激

0 投票
1 回答
789 浏览

ruby-on-rails - Rails4,如何在魔法宝石上配置多个模型

我将用户模型更改为 normal_user 和 admin_user

我想在网络上验证两个用户

我的计划是normal_user 仅使用网页和 admin_user 仅使用管理或客户端页面

下面的巫术配置文件只支持一个模型。

但我想支持用户和管理员用户。

如何配置文件或其他解决方案设置多个身份验证用户?