問題タブ [omniauth-facebook]
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 - omniauth-facebook Gem: omniauth.auth のプロバイダと uid が nil になることがありますか?
私のアプリケーションは、omniauth-facebook gem バージョン 1.6.0 でユーザーを認証しています。のfacebook
アクション内で、とOmniauthCallbacksController
のrequest.env["omniauth.auth"]
ハッシュ値が nil になることがあるようです。provider
uid
なぜこれが起こるのかについての洞察をいただければ幸いです。これが私のomniauth構成初期化子からの関連コードです
ruby-on-rails - オブジェクトをデータベースに保存する
Ruby on Rails 4 アプリがありomniauth-facebook
、認証に gem を使用しています。私は持っている
@omniauth[:extra][:raw_info][:education]
ここで、ユーザーの学歴 ( ) をデータベースのテーブルのeducation
列に保存したいと考えています。オブジェクトを含む Array オブジェクトです (つまり、 を返します)。Auth
@omniauth[:extra][:raw_info][:education]
OmniAuth::AuthHash
@omniauth[:extra][:raw_info][:education][0].class
OmniAuth::AuthHash
Rails api によると、「Active Record は、YAML を使用してテキスト列内の任意のオブジェクトをシリアル化できます。そのためには、クラス メソッド serialize への呼び出しでこれを指定する必要があります。これにより、配列、ハッシュ、およびその他のマッピング不可能なオブジェクトを格納できるようになります。追加の作業を行うことなく。」だから私は次のことをしました、そしてそれはうまくいっているようです:
これに何か欠点はありますか?より良い方法はありますか (json を使用するなど)? 私が考えることができる1つの欠点は、この方法でデータを保存すると、おそらく必要のない検索とクエリが難しくなることです.
どうもありがとう。
ruby-on-rails - Rails 4.1.5 omniauth の強力なパラメーター
Rails 4.1.4 を 4.1.5 にアップグレードした後、Facebook omniauth セッションでエラーが発生しました。それ以来、すべてが正常に機能していました。ユーザーセッションを作成すると、ActiveModel::ForbiddenAttributesError
ルート:
セッション#作成コントローラー:
そして、このようなユーザーモデル:
パーミットを追加することで、ActiveModel エラーを回避できます。そのような私のユーザーモデルのメソッド:
しかし、それはデータベースの最初のユーザーを上書きします...session[:user_id]
常にデータベースの最初のユーザーのようです。
それが強力なパラメーターの問題なのか、Omniauth の問題なのか、それともその両方なのかわかりません。
ruby-on-rails - Omniauth-Facebook gem を使用する場合、メソッド「where」はどこから来るのですか?
以下に示すコードは、rubygem、Omniauth および Omniauth-Facebook を Rails アプリに統合するときによく使用されます。このコードの行ごとの説明が必要です。
ruby-on-rails - SessionsController の Omniauth ArgumentError#create 間違った数の引数 (1 対 2) Rails 4
ROR アプリケーションに追加する前に、サンプル アプリケーションに facebook omniauth を組み込むためのオンライン チュートリアルに従っています ( http://richonrails.com/articles/facebook-authentication-in-ruby-on-railsおよびhttps://coderwall. com/p/bsfitw ) しかし、「Facebook リンクからログイン」にアクセスすると、引数の数が間違っているというエラーが表示されます。
これが私のユーザーモデルです(チュートリアルから直接)、エラーが発生しているように見える場所で、3行目がソースとして強調表示されています
セッションコントローラー
そこに 2 番目のチュートリアルのコーヒー スクリプトがありません。使用すると別のエラーが発生します。
どんな助けでも大歓迎です。
ruby-on-rails - パス「/users/」のデバイス マッピングが見つかりませんでした。どうして?
現在、devise/omniauth を使用しています。Facebook/Twitter でサインアップした後、「verify-email」というページにリダイレクトして、メール アドレスが正しいことを確認できるようにしたいと考えています。
私は今、localhost:3000/users/verify-email
ページを機能させようとしています。その URL にアクセスすると、次のエラー メッセージが表示されます。
パス「/users/update_email」のデバイス マッピングが見つかりませんでした。これは 2 つの理由で発生する可能性があります: 1) ルートをスコープ ブロック内にラップするのを忘れた。例: devise_scope :user do get "/some/route" => "some_devise_controller" end 2) ルーターをバイパスして Devise コントローラーをテストしています。その場合、Devise にどのマッピングを使用するか明示的に伝えることができます: @request.env["devise.mapping"] = Devise.mappings[:user]。
だからここに私のroutes.rbがあります:
スコープ ブロックでルートを間違ってラップしているとは思いません (これは、エラー メッセージの 1 番目で説明されていることです)。それは、どのマッピングを使用するかを明示的にDeviseに伝える必要があるということですか(これはエラーメッセージの#2に関するものです)? エラーメッセージには、これでどのマッピングを使用する@request.env["devise.mapping"] = Devise.mappings[:user].
かをdeviseに伝えることができると書かれています。それとも、何か他のことが起こっていると思いますか?
「custom_devise_controllers/registrations_controller.rb」を含めます。
ありがとう!私のコードについてさらに情報を知りたい場合は、お知らせください。