問題タブ [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 に答える
2627 参照

ruby-on-rails - 無効なソルト (BCrypt::Errors::InvalidSalt)

Ruby 2.2.0 にアップグレードしてから、テストで次のメッセージが表示されます。

問題を理解するのに役立つアップグレード通知は見つかりませんでした。Rails 4.1.8 と Sorcery 0.8.6 を使用しています。

他にこの問題を抱えている人はいますか?

詳細:

私はDeviseではなくSorceryを使用しています。暗号化されたデータがパスワードです。すべては Cucumber テストで始まりました。2 つのケースがあります。 @user をメーラーに送信して、メールのデータを準備していたときです。コードは次のとおりです。

UserMailer.passphrase_reset_notification(@user).deliver

最初のメッセージに書いたメッセージで例外が発生しました。@user を送信する代わりの回避策として、必要なフィールドを送信しましたが、うまくいきました。新しいコードは次のとおりです。

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

しかし、2番目のケースはサインアップです。開発に失敗したため、:salt を user_params に追加して修正する必要がありました。しかし、テスト環境の問題は修正されません。

スタック トレースはありません。エラーにつながる私のシナリオの行を含む 1 つのライナー メッセージだけです。

そして、無効なソルト (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 `そして、「サインアップ」を押します'

user テーブルのフィールド「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 アプリケーションでsorcery gemを使用しています。ソーサリーが構成できると言う2つの属性を構成する必要がありますが、実際にこれらの値を構成する方法がわかりません。

問題の 2 つの属性は次のとおりです。

これらのメソッド名をカスタマイズするにはどうすればよいですか?

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

フォームからパスワード フィールドを削除すると、パスワードが空白であることとパスワードの長さに関するエラーが表示されます。これは魔術と関係がありますか、それともレール自体に欠けているものですか? 他に影響を与えずに電子メールフィールドのみを更新するより良い方法はありますか?

0 投票する
1 に答える
1081 参照

ruby-on-rails - Sorcery gem - 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 にリダイレクトされます。

ただし...私が望んでいるのは、この状況では、root_pathに戻るだけでなく、new_testimonial_pathに誘導されることです。

つまり、要約すると、ログインしていないユーザーが「自分の意見を書く」ボタン (「自分の証言を書く」という意味) をクリックすると、ログインしていないため、new_user_session_path に誘導されます。次にログインすると、root_path に戻ります。そこで、ページをもう一度下にスクロールして、[Deja tu Opinion] ボタンをクリックする必要があります。これにより、new_testimonial_path に移動します。

ログインしていないユーザーが「意見を聞く」ボタンをクリックすると、ログインしていないため、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 - ソーサリー ジェム - Logged_in? 常に false を返す

Rails を使用して非常に単純な Web アプリを作成しようとしています。ユーザーを認証するために Sorcery gem を使用しています。ここのGitHubページのチュートリアルに従いましたが、どこにも行きません.

おそらく関連していると思われる2つの問題があります。まず、この before_filter を使用するとskip_before_filter :require_login, only: [:index, :new, :create]、ユーザーはログインせずにページにアクセスできます。

もう 1 つの問題は、ユーザーがログインしようとするとリダイレクトされず、組み込みのヘルパーを使用するlogged_in?と常に false が返されることです。ログイン時のエラーメッセージはありませんでしたが。

適切なコントローラーを追加しました。他に何か調べる必要がある場合はお知らせください。

ありがとう。

user_sessions_controller.rb

users_controller.rb

application_controller.rb

0 投票する
1 に答える
132 参照

ruby-on-rails - Sorceryと0auth、rails 4を使用した未定義のメソッド「login_at」

この Rails プロジェクトで Oauth をセットアップしようとしていますが、ビューで「login with ...」をクリックするたびに、「login_at」の未定義のメソッド エラーが表示されます。私のソーサリー構成ファイルには、特定の外部サブモジュールが含まれています

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

しかし、私はまだそのエラーを乗り越えることができません。どんな助けでも大歓迎です

0 投票する
1 に答える
789 参照

ruby-on-rails - Rails4, sorcery Gem で複数のモデルを設定する方法

User モデルを normal_user と admin_user に変更します

そして、私はウェブ上で両方のユーザーを認証したい

私の計画は、web ページのみを使用する normal_user と、管理者ページまたはクライアント ページのみを使用する admin_user です。

以下のソーサリー構成ファイルは、1 つのモデルのみをサポートします。

しかし、私は User と AdminUser をサポートしたいと思っています。

複数のauthencatinユーザーを設定するファイルまたは別のソリューションを構成する方法は?