Attualmente sto progettando un modello API da utilizzare. Un utente avrà un 'secret_api_key' e un 'public_api_key'. Manderanno una richiesta al mio server con la chiave pubblica, i dati del modulo e poi un hash. L'hash è i dati del modulo crittografati con "secret_api_key".
Questo è così che il server ricreerà questo hash dal momento che conosce il 'secret_api_key' e se gli hash sono uguali allora accetta la richiesta, altrimenti nega.
Il mio problema è che se qualcuno dovesse fare ciò utilizzando JavaScript, sarebbe necessario crittografarlo nel browser in modo che avessero bisogno di "secret_api_key" per cancellarlo. Ma il 'secret_api_key' è pensato per essere tenuto lontano dagli occhi del pubblico, quindi chiunque sarebbe in grado di guardare lo script e vedere la chiave segreta.
È un modo sbagliato di farlo? Onestamente non riesco a pensare a un modo in cui tu possa utilizzare la mia API all'interno di un browser utilizzando JavaScript (che sarebbe il metodo principale in cui le persone utilizzerebbero la mia API)
So che con OAuth ottieni un 'access_token' che invii semplicemente con una richiesta, sicuramente qualcuno potrebbe usare uno sniffer di traffico e inviare di nuovo richieste con lo stesso token di accesso? O funziona OAuth in modo diverso?
Qualsiasi aiuto o suggerimento sarebbe molto apprezzato.
Grazie.