Domanda

Il mio attuale file /config/initiazers/omniauth.rb contiene:

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

Quando accedo tramite Google andando a /Auth /Google, Google riporta:

Il dominio chiede alcune informazioni dal tuo account Google Email - Indirizzo e -mail: nome (e -mail)

La mia applicazione non ha bisogno dell'e -mail dell'utente e quindi vorrei rimuovere questa barriera all'ingresso. C'è comunque per rimuovere questo requisito. Per Facebook, ho scoperto che posso aggiungere la proprietà di "portata" delle opzioni, ad esempio:

provider :facebook, 'APP_ID', 'APP_SECRET', {:scope => ''}
È stato utile?

Soluzione

Sulla base di una rapida revisione della fonte per la strategia OpenID (da cui eredita l'auten eredita di Google APS), è possibile trasmettere opzioni che specificano quali attributi sono opzionali vs. richiesti per uno scambio di attributi (AX) AUTH.

Vedi il codice sorgente qui per le opzioni: https://github.com/intridea/omniauth/blob/master/oa-openid/lib/omniauth/strategies/open_id.rb

Sulla base di ciò, penso che potresti cambiare le opzioni come così per rimuovere l'e -mail come attributo richiesto:

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

Buona fortuna. Non ho testato questo, leggendo solo la fonte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top