問題タブ [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.

0 投票する
2 に答える
2930 参照

ruby-on-rails - deviseを使用してユーザーのタイムゾーンを動的に設定する

私は、親が乳児の睡眠を追跡するのに役立つRailsアプリを作成しました。それが正しく機能するためには、さまざまなタイムゾーンをサポートする必要がありました。タイムゾーンでユーザーを煩わせることを避けるために、タイムゾーンオフセットを含む非表示フィールドをログインフォームに追加する小さなJavaScriptを作成しました。これがコードです

そのフィールドのデータを使用して、Time.zoneをそのオフセットに対応する都市に設定しました。このようなものがタイムゾーンを生成します

最後に、ApplicationControllerでタイムゾーンを設定します。

これはすべて、私が自分で書いたログイン機能に依存しています。ただし、自分のコードは十分に機能しておらず、特に安全でもないため、後でより優れたユーザー管理システムを使用する必要があることはわかっていました(最初は他の機能に焦点を合わせていました)。

今、私はdeviseをインストールしました、そしてそれはログインとログアウトにうまく機能します、サイトの他のほとんどの機能も同様に機能します。しかし、ユーザー管理システムとしてdeviseを使用してタイムゾーンサポートにアプローチする方法がわかりません。

1つのアイデアは、DeviseのSessionsControllerをオーバーライドし、その非表示のタイムゾーンフィールドのチェックを追加して、その値をuser_sessionに追加することです。しかし、そうすることには不安を感じます。それは悪い考えのように感じます。

登録時にユーザーにタイムゾーン情報を追加させることなく、この機能を追加するためのより良い方法はありますか?

ありがとうございました!

0 投票する
2 に答える
12661 参照

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!このエラーは、コントローラーのメソッドにまでさかのぼります。

誰でも提供できるガイダンスをいただければ幸いです。

0 投票する
0 に答える
336 参照

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

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

ruby-on-rails - Rails with Devise-'remote =>true'submitの後にcurrent_userを使用します

ユーザーと顧客情報の2つの別々のモデルで機能する3つの部分からなるユーザーサインアップがあります。リモートで送信するユーザーサインアップがあり、フォームの次の部分に移動します。current_userCustomerInfo行を送信するときに変数を使用できるようにしたい。次のコードは、リモートなしでテストすると機能しますが、リモートでテストしても行がまったく作成されません。この変数の代わりに使用できる別の変数はありますか?それとも、これを達成するためのより良い方法はありますか?

0 投票する
0 に答える
326 参照

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'

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

ruby-on-rails - Devise(rails)を使用したLDAP認証を使用したETIMEDOUT

Devise :: SessionsController#createのErrno :: ETIMEDOUT

LDAP認証でDeviseを使用するRailsアプリケーションを作成しようとしています。

残念ながら、LDAP設定が正しいとは思いませんが、タイムアウトが発生したこと以外に、より詳細なエラー情報を出力する方法がわかりません。

これが私のLDAP設定です:

この構成を同様のPHPアプリケーションから移植したため、SSLを使用していないことはわかっていますが、PHPアプリケーションには属性フィールドがありません。多分これは私が理解していないことですか?

エラーを変更する方法とそれがネットワーク接続にどのように関連するかを参照するいくつかの 質問を見つけましたが、Net :: LDAPライブラリとこの接続が失敗している場所、私が見逃しているものを理解するためのリソースを見つけることができません、そして私が理解していないこと。ネットワーク接続を確認し、Windowsクライアントを使用して匿名アクセスでLDAPアクセス許可も確認しました。

出力、トレース、およびダンプは次のとおりです。

ありがとうございました!

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

api - 複数の(サブ)ドメイン間で認証を共有するにはどうすればよいですか?

  1. 認証されていないユーザーがwww.example.comに到着します。

  2. ユーザーは次の場所にログインします:https ://api.example.com/login

  3. ログインに成功すると、ユーザーはhttps://dashboard.example.comにリダイレクトされます。

  4. www.example.comに戻ると、セッションは保持され、ユーザーはそこからログアウトできるようになります。

例は、スクリーンショットのようにアプリ間でCookieを共有するHerokuによって示されています。

HerokuのCookie

この設定はどのように機能しますか?このセットアップをRackアプリでどのように模倣できますか?

0 投票する
3 に答える
8400 参照

ruby-on-rails - 間違った資格情報の場合、不正な監視員401を考案します

私は非常に標準的なDeviseログイン手順を持っています:

意見:

resource_name、:url => session_path(resource_name))do | f | %>

そして、メールをダウンケース化するためのセッションコントローラーを作成しました。

適切な資格情報を使用したログインは正常に行われます。

間違った資格情報を使用すると、次のログを使用してサインインページにリダイレクトされます。

どうやら401はWardenによってドロップされたようですが、理由がわかりませんでした。ユーザーはログインページに正しくリダイレ​​クトされますが、エラーメッセージは表示されません(リダイレクトによって消去されるため、これは正常です)。

私は何が間違っているのですか?

ありがとう!

編集1:

今のところ、私は簡単なハックを見つけました。これをSessionsController#newに追加しました

あまりエレガントではありませんが、少なくとも私には何かがあります。