問題タブ [omniauth]
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 Google OpenID WEBrick :: HTTPStatus :: RequestURITooLarge
OmniAuthを使用して、ユーザーがGoogleOpenIDアカウントでログインできるようにしています。WEBrickを使用して開発モードでログインしようとすると、WEBrick :: HTTPStatus::RequestURITooLargeエラーが発生します。Railsホストにデプロイすると、正常に機能します。WEBrickの代わりに使用する必要がある別のWebサーバーはありますか?
ruby-on-rails - OmniAuth がリクエストを次のミドルウェアに渡すのはなぜですか?
OmniAuthはうまく機能しますが、Rails v2.3.6 アプリで使用すると、最終的にはリクエスト自体を処理し、リダイレクトで応答するにもかかわらず、リクエストが次の Rack ミドルウェアに渡されることに気付きました。
コードの抜粋: ( Githubから)
そして、私のアプリは、/auth/provider
リクエストが渡されると、例外をスローして 404 を返します。ユーザーにはこれが表示されませんがExceptionNotifier
、ログには表示されます。これに対処するために、[200,{},[]]
のようなすべてのパスに対して応答する別のミドルウェアを作成しました/auth/provider_name
。
OmniAuth が要求をミドルウェア スタックに渡すのはなぜですか?
ruby-on-rails - Rails 3 — Omniauth ルーティング エラー、ローカルでは動作するがサーバーでは動作しない
Omniauth を使用して、ユーザーが Facebook を使用して Rails アプリにログインできるようにしようとしています。ローカルでは、omniauth は次のリンクを使用して、認証のためにブラウザーを Facebook に自動的にリダイレクトします。
<%= link_to "Sign in with Facebook", "/auth/facebook" %>
期待どおりにリダイレクトされ(コールバックエラーなし)、ログアウトできます。
この問題は、アプリケーションをサーバーにアップロードしようとすると発生します。何らかの理由で Omniauth が機能せず、リダイレクトも行いません。代わりに、ブラウザーをアプリ内の存在しないディレクトリ (http://sharedchecklist.com/auth/facebook) にポイントし、このエラーを吐き出します:
Routing Error
No route matches "/auth/facebook"
過去数時間にわたって多くの検索を行って、問題が何であるかを突き止めようとしました. サイトとキャンバスの URL をアプリのアドレスに変更したことを確認しました。コールバックの問題ではありません。
omniauth が存在しないようなものです…</p>
以前にこの問題に遭遇した人はいますか? 私はレールにかなり慣れていませんが、これまでに問題を解決することができたため、これが最も苛立たしいものになりました。
URL が役立つ場合は、http ://sharedchecklist.com/ をご覧ください。
ご協力いただきありがとうございます。
ruby-on-rails - omniauthと別の認証システムの混合
OmniAuth認証システム(ちなみに揺れる)と通常の認証システム(RESTful認証など)を組み合わせる方法を見つけることができませんでした。
これに関する情報はありますか?前もって感謝します!
ruby-on-rails - Rails Omniauth gem と Google OpenID を使用するときにユーザーの電子メールを要求しないようにするにはどうすればよいですか
私の現在の /config/initializers/omniauth.rb ファイルには以下が含まれています:
/auth/google に移動して Google 経由でログインすると、Google は次のように報告します。
DOMAIN があなたの Google アカウント EMAIL からいくつかの情報を求めています - メールアドレス: NAME (EMAIL)
私のアプリケーションはユーザーの電子メールを必要としないため、この障壁を取り除きたいと考えています。この要件を削除する方法はありますか。Facebook の場合、オプションの「スコープ」プロパティを追加できることがわかりました。次に例を示します。
ruby-on-rails - Omniauth: 実行時に認証プロバイダーの詳細を設定する方法
2 つのドメインからアクセスできる Rails アプリがあります。Facebook は、これらのドメインごとに Facebook アプリを登録することを要求し、それぞれの資格情報を提供します。Omniauth では、アプリケーションの起動時に設定される認証情報を 1 セットしか指定できません。ただし、リクエストのホストに応じて、FB に異なる資格情報を提供する必要があります。
ここには 2 つの問題があります。
- 実行時に Facebook の Omniauth 資格情報を変更するにはどうすればよいですか?
- Facebook への呼び出しを傍受し、ドメインを確認して、それに応じて資格情報を設定するにはどうすればよいですか? Omniauth は Rack Middleware を使用するため、before フィルターは機能しません。
どんな提案でも大歓迎です!
ruby-on-rails - Omniauth は Facebook チェックインを返しませんか?
Omniauth/facebook で認証した後、request.env["omniauth.auth"] から受け取ったデータ ハッシュ内にチェックインが含まれていないようです。 ..
誰にもアイデアはありますか?
ruby-on-rails - Omniauth + Windows ライブ
omniauth を使用して新しい Windows Live プロバイダーを構成するにはどうすればよいですか?
次のことを試しましたが、成功しませんでした:
と
ruby-on-rails - devise、omniauth、および google を機能させるための正しい構成行は何ですか?
ドキュメントに目を通しましたが、devise + omniauth + google をうまく連携させるために使用する予定の特定の行がわかりません。
この戦略ファイルは、それを行う簡単な方法があることを示唆していますが、例が見つかりません。
https://github.com/intridea/omniauth/blob/master/oa-oauth/lib/omniauth/strategies/google.rb
現時点では、devise.rb 初期化ファイルで以下の行を使用しています。
しかし、私はそれが不完全であると確信しています。
また、Google アプリ ID とシークレット キーにサインアップする場所を見つけるのに苦労しています。
前もって感謝します。グレアム
ruby-on-rails - Railsのomniauthを使用してoauthログインが成功した後のCommentオブジェクトの保存
ユーザーがomniauth(Twitter、Facebook、またはOpenID)を介して正常にログを記録した後、railsでコメントを更新または保存する必要があります。
- (ログインしていない)ユーザーがコメントフォームに入力します。それを投稿します。
- ユーザーは、サインイン方法(Twitter、Facebook、またはOpenID)を選択できるオムニ認証ページを取得します。
- ユーザーがoAuthから正常に戻ったら、コメントを保存(または公開)したいと思います。
私はこれをセッション変数を使用して機能させていますが、これはスレッドセーフではありません。ユーザーが同じセッションで複数のコメントタブを開いていると壊れます。
コメントを未公開の状態でデータベースに保存し、戻った後にそれを切り替える必要がありますか?もしそうなら、正しいコメントを切り替える方法を知る方法は?問題は、上記のセッションの問題と同様です。
コメントオブジェクトをomniauthと一緒に渡して、ユーザーが正常なサインインから戻ったときにそれを受け取る方法はありますか?
または、正常に返された後に抽出できるハッシュ文字列を渡すことはできますか?
編集:質問を単純化して明確にするために完全に書き直します。