3

現在、Rails と omniauth gem を使用して、アプリケーションを facebook、twitter、linkedin と統合しています。omn​​iauth コールバックを処理するときは、認証ハッシュから uid とプロバイダーを保存するだけです。オンラインのほとんどのチュートリアルでは、これらのフィールドも保存するだけですが、後で facebook/twitter/linkedin からユーザーの詳細にアクセスするにはどうすればよいでしょうか? uid/provider 以外に、認証ハッシュのどのフィールドを保存する必要がありますか?

私が読んだいくつかのガイド:

Deviseを使用したGithub omniauth

Railscast omniauth とデバイス

4

2 に答える 2

3

Railscast には、完全に機能する OmniauthCallbacksController を作成する前の例があります。

raise request.env["omniauth.auth"].to_yaml

画面にリクエストを出力します。ご覧のとおり、このハッシュにomniauth.authは、認証されたユーザーに関する有用な情報がたくさん含まれています。認証OKの都度受信します。この場合、 と 以外をデータベースに保存する必要はありませuidprovider

ハッシュのエントリは次のようにアクセスできます:

(request.env["omniauth.auth"]).info.nickname

また

(request.env["omniauth.auth"]).uid

ロジックが表示されます。yaml 出力のすべてのセクション (「情報」としましょう) には、特定の属性が含まれています。

于 2012-12-29T00:49:26.810 に答える
0

Facebookからアクセストークンを保存し、情報が必要な場合はAPIをポーリングし、2時間ごとにトークンを自動的に更新しました。

于 2012-12-29T20:51:53.057 に答える