SC.connect doesn't make sure that oauth_token is valid
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- api, authentication
Direzione di ricerca
Start by tracing SC.connect, SC.isConnected, and config.set, focusing on how an existing oauth_token is handled and how the /me request reports a 401. Confirm that an invalid token can be cleared or rejected without reloading the page, then verify the reconnect flow and existing authentication behavior.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
With the previous SDK version, I could avoid a login popup every pageload by doing this:
var params = {
client_id: '...',
redirect_uri: '...',
scope: 'non-expiring'
};
var auth = localStorage.getItem('auth-token');
if (auth) {
params.access_token = auth;
}
SC.initialize(params);
// ...
function connectionCallback() {
localStorage.setItem('auth-token', SC.accessToken());
onConnected();
SC.get('/me', gotUserdata);
}
if (SC.isConnected()) {
// make sure we really are
SC.get('/me', function(user, err) {
if (!!err) {
// Error exists, connectify
SC.connect(connectionCallback);
} else {
// We're in
onConnected();
gotUserdata(user);
}
});
} else {
SC.connect(connectionCallback);
}
However now isConnected is simply
isConnected () {
return config.get('oauth_token') !== undefined;
},
and connect does this:
// resolve immediately when oauth_token is set
const oauth_token = config.get('oauth_token');
if (oauth_token) {
return new Promise((resolve) => { resolve({oauth_token}); });
}
I thought I could get around this by checking for a 401 when fetching /me, but unfortunately I can't null out the oauth_token config value:
set(key, value) {
if (value) {
config[key] = value;
}
}
The best I can think of now is to delete the localStorage value and reload the page, but that's not very nice.
- Lingua principale
- JavaScript
- Stelle
- 388
- Fork
- 76
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di soundcloud/soundcloud-javascript
-
Dependency DashboardAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
soundcloud/soundcloud-javascript#90 · 1 reazione ·
-
Get currently playing trackAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di soundcloud/soundcloud-javascript
Issue simili
-
status: waiting triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
freeCodeCamp/freeCodeCamp#70412 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Jason-Vaughan/TangleClaw#1884 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue web
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/TypeScript#64453 ·
I maintainer di solito rispondono entro 1 giorno
-
self-driving
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno