Risposta a 1 è piuttosto semplice: è sufficiente aggiungere un percorso, se nel metodo omniauth_callbacks_controller :: process_callback come questo
# If a user is signed in then he is trying to link a new account
if user_signed_in?
if authentication.persisted? # This was a linking operation so send back the user to the account edit page
flash[:success] = I18n.t "controllers.omniauth_callbacks.process_callback.success.link_account",
:provider => registration_hash[:provider].capitalize,
:account => registration_hash[:email]
else
flash[:error] = I18n.t "controllers.omniauth_callbacks.process_callback.error.link_account",
:provider => registration_hash[:provider].capitalize,
:account => registration_hash[:email],
:errors =>authentication.errors
end
redirect_to edit_user_account_path(current_user)
Questo è quello che faccio nella mia applicazione e funziona benissimo.
Riguardo alla domanda 2 non so come supportare 2 diverse configurazioni di autenticazione di facebook, tuttavia ho difficoltà a vedere come ciò è utile per gli utenti poiché hanno bisogno di un'esperienza coerente su entrambi i percorsi: "accedi usando facebook" e "link" il tuo account su facebook ". (Se vuoi continuare su questa strada, un'idea che vorrei esplorare è creare una nuova applicazione Facebook con le sue chiavi indipendenti e configurazione ...)
Spero che questo aiuto.
fonte
2012-01-02 18:57:50
per rispondere "Ho difficoltà a vedere quanto sia utile per gli utenti poiché hanno bisogno di un'esperienza coerente", ci sono funzioni sul sito che richiederebbero più o meno autorizzazioni - ad esempio, se si desidera solo un accesso di base, chiederemo il minor numero di permessi. tuttavia, se si desidera qualcosa di più interessante (ad esempio ottenere alcuni dettagli dal profilo in considerazione), avremmo bisogno di chiedere ulteriori autorizzazioni. – katzmopolitan