問題タブ [warden]
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 - deviseを使用してユーザーのタイムゾーンを動的に設定する
私は、親が乳児の睡眠を追跡するのに役立つRailsアプリを作成しました。それが正しく機能するためには、さまざまなタイムゾーンをサポートする必要がありました。タイムゾーンでユーザーを煩わせることを避けるために、タイムゾーンオフセットを含む非表示フィールドをログインフォームに追加する小さなJavaScriptを作成しました。これがコードです
そのフィールドのデータを使用して、Time.zoneをそのオフセットに対応する都市に設定しました。このようなものがタイムゾーンを生成します
最後に、ApplicationControllerでタイムゾーンを設定します。
これはすべて、私が自分で書いたログイン機能に依存しています。ただし、自分のコードは十分に機能しておらず、特に安全でもないため、後でより優れたユーザー管理システムを使用する必要があることはわかっていました(最初は他の機能に焦点を合わせていました)。
今、私はdeviseをインストールしました、そしてそれはログインとログアウトにうまく機能します、サイトの他のほとんどの機能も同様に機能します。しかし、ユーザー管理システムとしてdeviseを使用してタイムゾーンサポートにアプローチする方法がわかりません。
1つのアイデアは、DeviseのSessionsControllerをオーバーライドし、その非表示のタイムゾーンフィールドのチェックを追加して、その値をuser_sessionに追加することです。しかし、そうすることには不安を感じます。それは悪い考えのように感じます。
登録時にユーザーにタイムゾーン情報を追加させることなく、この機能を追加するためのより良い方法はありますか?
ありがとうございました!
ruby-on-rails - RSpec コントローラー仕様で使用するための Warden の構成
Devise のsign_in
メソッドを使用して、コントローラーの仕様でユーザーをログインさせることができました。しかし、Devise をアプリケーションから削除したので、Warden だけで同様の機能を動作させる方法がよくわかりません。
コントローラーの仕様内で Warden を十分に実行するには、どのようにセットアップspec/spec_helper.rb
および関連ファイルを設定すればよいですか?spec/support/*.rb
spec/support/warden.rb
これらの内容でファイルを設定しようとしました:
次に、ファクトリbefore
を認証するために次のような呼び出しを行います。user
しかし、ここに私が見続けるエラーがあります:
authenticate_user!
このエラーは、コントローラーのメソッドにまでさかのぼります。
誰でも提供できるガイダンスをいただければ幸いです。
ruby-on-rails - Heroku、Rails:ワイルドカードSSLによりenv['warden']がnilを返す
私のRailsアプリで。私はdeviseを使用しています。ユーザーは「ja.myapp.com」、「www.myapp.com」などのいくつかのサブドメインからトップページに入るでしょう。私はプロモーションページ内でのみいくつかのサブドメインを使用しているので、「サインイン」ページに入ると、すべてそれらは「www」サブドメインページにリダイレクトされます。
ユーザーがサインインするときに、ユーザーのprofile_typeが「Student」の場合、ユーザーは「Students'home」にリダイレクトされます。「Teacher」の場合、「Teachers'home」です。
「POW」でテストするとすべて正常に動作しますが、本番サーバーにアップロードすると正常に動作します。ユーザーがサインインすると、すべてのユーザーがTOPページにリダイレクトされます。
アプリをロールバックして再度サインインしてみましたが、同じことが起こりました。これは、heroku証明書を「シングルドメインSSL」から「ワイルドカードサブドメインSSL」にアップロードした後に発生しました。
SSLを単一ドメインに変更した後、これはロールバックされたサイト内では発生しなくなります。
これは「ワイルドカードサブドメインSSL」とデバイスセッションコントローラーが原因で発生したと思いますが、それについてはよくわかりません。
誰かがこの問題を解決するためのアイデアを持っていますか?
以下はコードです。
ルート.rb
config / initializers / session_store.rb
application_controller
locale_settings_controller.rb
Production.rb
config / initializers / rack_rewrite.rb
ruby-on-rails - Rails with Devise-'remote =>true'submitの後にcurrent_userを使用します
ユーザーと顧客情報の2つの別々のモデルで機能する3つの部分からなるユーザーサインアップがあります。リモートで送信するユーザーサインアップがあり、フォームの次の部分に移動します。current_user
CustomerInfo行を送信するときに変数を使用できるようにしたい。次のコードは、リモートなしでテストすると機能しますが、リモートでテストしても行がまったく作成されません。この変数の代わりに使用できる別の変数はありますか?それとも、これを達成するためのより良い方法はありますか?
ruby-on-rails - デバイスセッションが永続化されないのはなぜですか?
セッションを永続化できないため、Rails アプリケーションの一部のユーザーはサインイン/サインアップできません。これは完全にランダムであり、再現することはできません。問題を絞り込むために監視する必要があるものはありますか? ユーザーに確認する必要のあるブラウザの設定はありますか?
アプリは rails-3.2.8 と devise-2.1.2 を実行しています
サブドメインを許可して、セッションを memcached に保存しています。
Authentication::Application.config.session_store ActionDispatch::Session::CacheStore, :namespace => '_sessions', :key => '_cb_session_m', :expire_after => 2.weeks, :domain => 'my_domain.com'
ruby-on-rails - Devise(rails)を使用したLDAP認証を使用したETIMEDOUT
Devise :: SessionsController#createのErrno :: ETIMEDOUT
LDAP認証でDeviseを使用するRailsアプリケーションを作成しようとしています。
残念ながら、LDAP設定が正しいとは思いませんが、タイムアウトが発生したこと以外に、より詳細なエラー情報を出力する方法がわかりません。
これが私のLDAP設定です:
この構成を同様のPHPアプリケーションから移植したため、SSLを使用していないことはわかっていますが、PHPアプリケーションには属性フィールドがありません。多分これは私が理解していないことですか?
エラーを変更する方法とそれがネットワーク接続にどのように関連するかを参照するいくつかの 質問を見つけましたが、Net :: LDAPライブラリとこの接続が失敗している場所、私が見逃しているものを理解するためのリソースを見つけることができません、そして私が理解していないこと。ネットワーク接続を確認し、Windowsクライアントを使用して匿名アクセスでLDAPアクセス許可も確認しました。
出力、トレース、およびダンプは次のとおりです。
ありがとうございました!
api - 複数の(サブ)ドメイン間で認証を共有するにはどうすればよいですか?
認証されていないユーザーがwww.example.comに到着します。
ユーザーは次の場所にログインします:https ://api.example.com/login
ログインに成功すると、ユーザーはhttps://dashboard.example.comにリダイレクトされます。
www.example.comに戻ると、セッションは保持され、ユーザーはそこからログアウトできるようになります。
例は、スクリーンショットのようにアプリ間でCookieを共有するHerokuによって示されています。
この設定はどのように機能しますか?このセットアップをRackアプリでどのように模倣できますか?
ruby-on-rails - 間違った資格情報の場合、不正な監視員401を考案します
私は非常に標準的なDeviseログイン手順を持っています:
意見:
resource_name、:url => session_path(resource_name))do | f | %>そして、メールをダウンケース化するためのセッションコントローラーを作成しました。
適切な資格情報を使用したログインは正常に行われます。
間違った資格情報を使用すると、次のログを使用してサインインページにリダイレクトされます。
どうやら401はWardenによってドロップされたようですが、理由がわかりませんでした。ユーザーはログインページに正しくリダイレクトされますが、エラーメッセージは表示されません(リダイレクトによって消去されるため、これは正常です)。
私は何が間違っているのですか?
ありがとう!
編集1:
今のところ、私は簡単なハックを見つけました。これをSessionsController#newに追加しました
あまりエレガントではありませんが、少なくとも私には何かがあります。