EDIT: Ho cambiato il modo in cui mi piacerebbe farlo penso che userò una tabella MySQL per autorizzare gli accessi elaborati tramite google. La domanda cambiata è postata qui: Restrict Login with Google OAuth2.0 and Devise to Specific Whitelist Table using RubyLimita il login con Google OAuth2.0 a Nome dominio autorizzato specifico su Ruby
OK, sto cercando di ottenere un'autenticazione limitata per il mio sito web ruby on rails utilizzando Devise e Omni-Auth2 e solo google. Tutto sta funzionando finora, ma voglio solo che le email provenienti da un certo dominio vengano accettate. Sono comunque aperto a farlo.
Ho fatto qualche ricerca su google, ma sembra che alcuni utenti di PHP abbiano un po 'più di file locali di me, forse perché usano localmente il client API di google? Non sono esattamente sicuro, dato che sono abbastanza nuovo nel programmare in generale e sono sorpreso di averlo fatto fino a qui.
Ecco un esempio: Google Oauth2.0 with Python: How do I limit access to a specific domain?
E qui: Restrict Login Email with Google OAuth2.0 to Specific Domain Name
Entrambi sembrano utilizzare il "hd: dominio" o qualcosa di simile, ma sembra che ci sia problemi con ciò che più non sono sicuro come lo implorerei nella mia app.
Ora, per qualche informazione in più, Io uso solo la disposizione testamentaria gemma e omniauth-google-OAuth2 (https://github.com/zquestz/omniauth-google-oauth2) Mi sento come theres un modo per farlo con quella gemma, ma ancora non del tutto sicuro. Qualsiasi aiuto sarebbe apprezzato se posso pubblicare ulteriori informazioni fammi sapere.
mio omniauth_callbacks_controller:
class User::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def google_oauth2
# You need to implement the method below in your model (e.g. app/models/user.rb)
@user = User.find_for_google_oauth2(request.env["omniauth.auth"], current_user)
if @user.persisted?
flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Google"
sign_in_and_redirect @user, :event => :authentication
else
session["devise.google_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
end
Ho eseguito la stessa cosa, ma non funziona per me .. Se avete altra soluzione, per favore postate qui –