5

私の現在の /config/initializers/omniauth.rb ファイルには以下が含まれています:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :open_id, nil, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
end

/auth/google に移動して Google 経由でログインすると、Google は次のように報告します。

DOMAIN があなたの Google アカウント EMAIL からいくつかの情報を求めています - メールアドレス: NAME (EMAIL)

私のアプリケーションはユーザーの電子メールを必要としないため、この障壁を取り除きたいと考えています。この要件を削除する方法はありますか。Facebook の場合、オプションの「スコープ」プロパティを追加できることがわかりました。次に例を示します。

provider :facebook, 'APP_ID', 'APP_SECRET', {:scope => ''}
4

1 に答える 1

3

OpenID 戦略 (Google Aps auth の継承元) のソースの簡単なレビューに基づいて、Attributes Exchange (AX) auth でオプションの属性と必須の属性を指定するオプションを渡すことができます。

オプションについては、こちらのソース コードを参照してください: https://github.com/intridea/omniauth/blob/master/oa-openid/lib/omniauth/strategies/open_id.rb

それに基づいて、次のようにオプションを変更して、メールを必須属性として削除できると思います。

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :open_id, nil, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id', :required => [], :optional => []
end

幸運を。ソースを読んだだけで、これをテストしませんでした。

于 2011-02-27T18:14:55.383 に答える