ios - big - ionic p
omniauth para carriles y autenticación ios (2)
Cuando creas una aplicación Facebook (fb), debes indicar dónde está ubicada la devolución de llamada url, probablemente la configures en fb como: http://localhost:3000/bla/bla
Funciona bien si pruebas en tu propia máquina pero para poder probar en su dispositivo ios, entonces debe cambiar localhost
por algo así como la ip de su máquina (Ej. 192.168.1.1)
Tengo una aplicación de rieles que maneja la API de un cliente de iOS. Yo uso el diseño, omniauth-facebook para los rieles. para el cliente de iOS estoy usando cuentas y marco social para la autenticación de Facebook. Agarré el token de oauth y lo pasé a los rieles mediante la devolución de llamada de omniauth para autenticar pero recibía este error. ¿Puede alguien por favor guiarme en lo que estoy haciendo mal? debajo aquí está el registro que estoy recibiendo.
Started POST "/users/auth/facebook/callback" for ::1 at 2015-01-12 10:59:22 +0800 I, [2015-01-12T10:59:22.928323 #99294] INFO -- omniauth: (facebook) Callback phase initiated. E, [2015-01-12T10:59:22.929737 #99294] ERROR -- omniauth: (facebook) Authentication failure! no_authorization_code: OmniAuth::Strategies::Facebook::NoAuthorizationCodeError, must pass either a code (via URL or by an fbsr_XXX signed request cookie) Processing by Users::OmniauthCallbacksController#failure as / Parameters: {"access_token"=>"tokenFromACFBiOS"} Redirected to localhost:3000/users/sign_in Completed 302 Found in 4ms (ActiveRecord: 0.0ms)
Aquí está la esencia de mi iOS y el código de back-end. https://gist.github.com/chocnut/ae6f415accd95c8ef415
Pude lograr esto usando la gema omniauth-facebook-access-token. https://github.com/SoapSeller/omniauth-facebook-access-token
Cree otro proveedor de Oauth en su inicializador de diseño llamado ''facebook_access_token'', puede usar las mismas credenciales que el proveedor de Facebook.
Publica el token como el parámetro ''access_token''. Use la cadena de consulta? Format = json en la url de devolución de llamada si desea que la respuesta final de su aplicación se devuelva como JSON.