Sono nuovo di OAuth2 e c'è un problema con cui mi sono confrontato e nonostante la ricerca non è ancora in grado di cogliere.In che modo le librerie JS lato client per OAuth2 mantengono l'autenticazione protetta?
La difficoltà di avere un client JS per OAuth2 è che non è possibile memorizzare il segreto del client, perché sarà ampiamente accessibile nel browser. Cioè nel this SO question il commento più quotati dice:
"Penso parametri tokenSecret e consumerSekret dovrebbero essere segreto Come potevano rimanere segreta quando vengono scaricati al browser !!!!?"
Quindi come si fa sul lato client framework OAuth2 come hello.js o oauth.io superare questo problema? So che usano un proxy sul lato server (che conosce l'ID e il segreto) per le loro richieste, ma il codice JS del client deve ancora in qualche modo dire al proxy chi è. Quindi cosa impedisce a nessuno di prendere il codice JS dal mio sito Web e parlare con il proxy per conto mio?
Ho anche trovato il Google APIs Client Library for JavaScript. AFAIK lì il codice cliente non passa un segreto. Ho capito correttamente che gestiscono questo avendo un indirizzo di risposta OAuth predefinito? (in modo che i token vengano sempre restituiti tramite un indirizzo HTTP predefinito). Quindi, anche se qualcuno tenta di impersonare il mio sito web utilizzando il mio ID, i token verranno comunque restituiti al mio sito web?
Forse sto confondendo alcuni argomenti diversi qui, qualsiasi luce sull'argomento sarebbe apprezzata.
per chiunque cerchi. Questo è estremamente insicuro. Chiunque può visualizzare la fonte e ottenere il segreto del cliente. Non farlo! – EasyCo
Questo è molto insicuro. Chiunque può ottenere un token di accesso utilizzando il client secret. – ursuleacv