¿Cómo puedo especificar los permisos de Facebook (también conocido como SCOPE) OmniAuth pide DINÁMICAMENTE?

StackOverflow https://stackoverflow.com/questions/4751756

Pregunta

Esta pregunta es similar a ¿Cómo puedo specifiy lo que el acceso que necesito de Facebook de mi cuentas de usuario al utilizar OmniAuth? pero tiene una advertencia.

Estoy usando OmniAuth a autorizar a los usuarios de Facebook en mi sitio web. Para entrada / registro regular, preguntando al usuario para permisos estándar de Facebook son aceptables. Pero hay una característica en mi sitio que requiere permisos ampliados (acceso a sus fotos de Facebook). Quiero pedir sólo los permisos ampliados para los usuarios cuando / si utilizan foto característica de Facebook de nuestro sitio.

Todas las respuestas que he encontrado en la web acerca de cómo establecer permisos para facebook acuerdo OmniAuth con sólo añadir una opción de ámbito en su inicializador OmniAuth, así:

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

Pero necesito para definir el alcance de forma dinámica, por lo que sólo cuando los usuarios utilizan la función de foto consiguen pidieron los permisos de fotos, pero no si se acaba de iniciar sesión o registrarse por primera vez.

conozco a nadie cómo hacer esto? Gracias de antemano.

¿Fue útil?

Solución

Es posible que haya encontrado una solución a este problema ya, pero pensé que interrumpiría para los que siguen en busca de solucionar esto. Mi solución que permite a la petición tan poco como sea posible los permisos de Facebook frontal hacia arriba, y luego dinámicamente los soliciten como su aplicación los necesita.

http://www.mikepackdev.com/blog_posts/2-Dynamically -solicitando-facebook-Permisos-con-OmniAuth

Espero que esto ayude!

Otros consejos

Parece que se están añadiendo que a OmniAuth, pero es todavía en fase beta.

Se agrega un

:setup => true

a su proveedor y luego crear un método donde se genera dinámicamente las opciones (credenciales / alcance) que necesitan.

https://github.com/intridea/omniauth/wiki/Setup-Phase

https://github.com/intridea/omniauth/wiki/Dynamic-Providers

Creo que no se puede hacer eso correctamente. Porque no se puede estar seguro de que su uso usuario sólo la función de foto. Usted usuario puede acceder a toda la parte de ti función de la aplicación de fotografía y otra función. Cuando el usuario está conectado y el interruptor de su función de fotografía para otra función, no se puede pedir que se vuelva a iniciar sesión. Para acceder a esta otra característica.

Todo usuario realmente no comprobar qué tipo de acceso a su Autorizar, por lo que no se preocupe por una gran cantidad de pedir permiso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top