2011-01-20 10 views
9

Questa domanda è simile a How can I specifiy what access I need from my user's Facebook accounts when using OmniAuth? ma ha un avvertimento.Come specificare le autorizzazioni di Facebook (ovvero l'ambito) OmniAuth richiede DYNAMICALLY?

Sto utilizzando OmniAuth per autorizzare gli utenti di Facebook sul mio sito web. Per l'accesso/registrazione regolare, chiedere all'utente le autorizzazioni standard di Facebook sono accettabili. Ma c'è una funzionalità sul mio sito che richiede autorizzazioni estese (accesso alle foto di Facebook). Voglio solo chiedere le autorizzazioni estese per gli utenti quando/se usano la funzione fotografica di Facebook del nostro sito.

Tutte le risposte che ho trovato sul web su come impostare i permessi Facebook per omniauth affare con solo l'aggiunta di un'opzione di validità del initializer OmniAuth, in questo modo:

ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Facebook, 'app_id', 'app_secret', {:scope => 'email,offline_access,the,scope,you,want} 

Ma ho bisogno di definire la portata in modo dinamico, in modo che solo quando gli utenti utilizzano la funzione foto vengono richiesti i permessi per le foto, ma non se si collegano o registrano per la prima volta.

Qualcuno sa come fare? Grazie in anticipo.

risposta

11

Potreste aver capito una soluzione a questo problema già, ma ho pensato di carillon per quelli ancora in cerca di risolvere questo. La mia soluzione ti consente di richiedere il numero minimo di autorizzazioni di Facebook in anticipo, quindi di richiederle dinamicamente in base alle esigenze della tua app.

http://www.mikepackdev.com/blog_posts/2-Dynamically-Requesting-Facebook-Permissions-with-OmniAuth

Spero che questo aiuti!

+0

Grazie, Mike! Molto apprezzato. Ho inoltrato questo ad alcune persone che penso possano averne bisogno. –

+0

Sean, felice di averlo sentito!Grazie per il futuro, roba più divertente per venire sul mio nuovo sito :) – Mike

+0

Come sarebbe simile codice ma per omniauth-facebook? –

-1

Penso che non sia possibile farlo correttamente. Perché non puoi essere sicuro che il tuo utente usi solo la funzione foto. L'utente può accedere a tutte le parti della funzione fotografica dell'applicazione e ad altre funzionalità. Quando l'utente è registrato e passa dalla funzione fotografica ad un'altra funzione, non è possibile chiedere di registrare nuovamente. per accedere a questa altra funzione.

Tutti gli utenti non controllano realmente che tipo di accesso autorizzano, quindi non preoccuparti di chiedere molto permesso.

+0

Quando i miei utenti fanno clic sul collegamento per utilizzare la mia funzione di foto, è facile per me inviarli a/auth/facebook (anche se sono già connessi) e per reindirizzare alla pagina della foto se le autorizzazioni corrette hanno stato dato. Il problema sta cambiando {: scope = ""} quando fanno clic sul link, quindi tornano a {: scope = ""} al termine. Ho bisogno di sapere se e come l'oscilloscopio può essere impostato dopo l'init di app in questo modo. Questo è su un sito Web principale, quindi la percentuale di utenti che si sposteranno al momento dell'accesso perché le autorizzazioni di foto sono necessarie per sigin è una preoccupazione sostanziale. –

Problemi correlati