Sto cercando di utilizzare Facebook per autenticare gli utenti. Funziona bene tranne che per le chiamate Ajax. La maggior parte delle volte è semplicemente inviare vecchio token e ottengo:Impossibile autorizzare l'utente in Facebook JS SDK: "Questo codice di autorizzazione è stato utilizzato." o come ottenere un nuovo token di autorizzazione?
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}
Così che cosa ho provato a fare è avvolgere ogni chiamata AJAX con
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
return fn();
...
questo non ha funzionato così ho aggiunto: vero come parametro per getLoginStatus per impedire la memorizzazione nella cache:
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log('connected');
fn();
} else if (response.status === 'not_authorized') {
console.log('not_authorized);
} else {
console.log('not_logged_in');
}
},true);
Grande! Tranne che è terribilmente lento. Sto facendo qualcosa di sbagliato? Posso ottenere un nuovo gettone dopo ogni azione, quindi non devo aspettare prima di quello successivo?
Grazie W
lo capisco. Ma c'è un'opzione per ottenere automaticamente il nuovo codice? Questo non renderebbe l'SDK JS inutilizzabile per le chiamate frequenti ajax se ho bisogno di ottenere un nuovo token prima di ogni chiamata? C'è una soluzione per questo tranne la creazione di utenti sul lato server e metterlo in sessione? – wonglik
Ah, sì:) - Devi estendere i tuoi token di accesso https://developers.facebook.com/docs/howtos/login/extending-tokens/ – dacopenhagen
Puoi collegarti alla fonte della risposta di facebook? – rocketspacer