L'attuale omniauth-facebook sembra avere alcuni problemi, e voglio sapere se qualcuno ha delle risposte.Rails omniauth-facebook numero irrisolto
Il primo problema era il problema non valido. Non sono riuscito ad accedere alla mia applicazione utilizzando l'autorizzazione lato client a causa di questo problema. Tuttavia, questo potrebbe essere risolto effettuando il downgrade di facebook-omniauth alla versione 1.4.0. (reference)
Tuttavia, ora sto incontrando secondo problema, NoAuthorizationCodeError, con il messaggio di errore:
OmniAuth Strategies Facebook NoAuthorizationCodeError
(must pass either a `code` parameter or a signed request
(via `signed_request` parameter):
questo è stato chiesto nel here, ma la risposta accettata consiglia di realtà aggiornamento-1,4 .1 di nuovo la versione, che renderebbe nuovamente il problema delle credenziali non valide precedenti. Quindi questa non è un'opzione per me.
Il NoAuthorizationCodeError
accade quando provo ad accedere al mio applicazione all'interno di Facebook iFrame (cercato la mia app dal centro app) tramite Internet Explorer . Tutto funziona bene su Chrome o Firefox. C'è anche un github issue che identifica esattamente questo problema, ma nessuno ha ancora trovato una risposta. Ho anche provato a eseguire il downgrade alla versione 1.3.0 di omniauth-facebook, ma non ha fatto alcuna differenza. Ho anche provato a passare nel parametro signed_request
come segue:
window.location = '/auth/facebook/callback',
{ signed_request: response.authResponse.signedRequest }
Tuttavia, non faceva alcuna differenza (su IE, l'errore persiste), e non sono sicuro se questo è il modo giusto passare il codice come parametro (come controllo?)
Presumo che non ci siano problemi con le mie impostazioni. Gradirei davvero qualsiasi aiuto in merito.
UPDATE:
ho aggiornato alla 1.4.1 versione senza dover valida problema di credenziali, ma NoAuthorizationCodeError si verifica ancora quando accedo l'applicazione all'interno di Facebook tramite Internet Explorer. Controlla il mio Github issue.
UPDATE:
ho declassato a 1.4.0 versione, e ha aggiunto params signedRequest.
<script>
function login() {
FB.login(function(response) {
if (response.authResponse) {
window.location = '/auth/facebook/callback?' + $.param({ signed_request: response.authResponse.signedRequest })
}
}, {scope: 'email,publish_stream,publish_actions'});
}
</script>
Non ci sono errori o avvisi nel registro e tutto funziona come previsto. Tuttavia, se accedo a Facebook iFrame tramite internet explorer, non mi accede anche dopo l'avvio della fase di callback. Immagino che il problema originale sia stato risolto ma non riesco a capire come eseguire il debug di questo quando non c'è alcun tipo di messaggio di errore.
Problema: Quando faccio clic su "Accedi con Facebook" all'interno di Facebook iFrame per la mia applicazione con Internet Explorer, NON ho effettuato l'accesso al termine del processo di autorizzazione. Questo problema si verifica solo in quell'ambiente specifico e ho avuto difficoltà a cercare di capire perché.
2013-02-22T01:10:40+00:00 app[web.1]: Started GET "/auth/facebook/callback?signed_request=LONGSTRING" for 200.1.102.103 at 2013-02-22 01:10:40 +0000
2013-02-22T01:10:40+00:00 app[web.1]: (facebook) Callback phase initiated.
2013-02-22T01:10:40+00:00 app[web.1]: Processing by SessionsController#create_facebook as HTML
2013-02-22T01:10:40+00:00 app[web.1]: Parameters: {"signed_request"=>"LONGSTRING", "provider"=>"facebook"}
2013-02-22T01:10:40+00:00 app[web.1]: User Load (1.6ms) SELECT "users".* FROM "users" WHERE "users"."provider" = 'facebook' AND "users"."uid" = 'MYUID' LIMIT 1
2013-02-22T01:10:40+00:00 app[web.1]: (0.8ms) BEGIN
2013-02-22T01:10:40+00:00 app[web.1]: User Exists (1.0ms) SELECT 1 AS one FROM "users" WHERE ("users"."name" = 'MYNAME' AND "users"."id" != 3) LIMIT 1
2013-02-22T01:10:40+00:00 app[web.1]: (0.9ms) COMMIT
2013-02-22T01:10:40+00:00 app[web.1]: Redirected to http://MYAPP.COM
2013-02-22T01:10:40+00:00 app[web.1]: Completed 302 Found in 10ms (ActiveRecord: 4.2ms)
Ancora, in qualsiasi altro ambiente l'autorizzazione funziona perfettamente su tutti i browser. Questo problema si verifica solo quando si tenta di accedere a all'interno di Facebook tramite Internet Explorer.
mio ambiente: omniauth-facebook 1.4.0, 1.1.1 omniauth, OAuth2 0.8.0, Rails 3.2.11
Ho volutamente retrocesso omniauth-facebook da 1.4.1 a 1.4.0 a causa di l'errore credenziali non valide nell'ultima versione.
Anche io ho riscontrato lo stesso problema, dopo aver eseguito il downgrade del gem di omniauth-facebook nel problema della versione 1.4.0 risolto. – prabu