Come non richiedo l'e -mail dell'utente quando si utilizza Rails Omniauth Gem e Google OpenID
-
13-11-2019 - |
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 => ''}
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.