Il nostro sistema ha utenti ma vogliamo forse consentire ad alcuni utenti di poter usare il nostro servizio API. Sto cercando di utilizzare OAuth2 per l'autorizzazione. Visto che sarà un accesso da macchina a macchina (fidato), ho anche pensato di utilizzare le credenziali del cliente.
Quindi, per esempio, quando creiamo un articolo tramite la nostra API, vogliamo che abbia un autore (utente). Quindi forse i token di accesso ai negozi, i token di autenticazione, le credenziali del cliente nella collezione di utenti per ogni utente a cui è concesso l'accesso API? Questa è una buona pratica?
Raccolta utenti:
[
{
"_id": MongoId("uguifdguioei..."),
"username": "joe.sixpack",
.
.
"oauth": {
"client_id": "1234567890",
"client_secret": "qwertyuiop1234567890",
"access_token": "8sf989dgd9fgdjkngf77y3retr8ghujker",
"refresh_token": "usknfgeor..."
}
},
.
.
.
]
In un altro progetto (MySQL) ho un sacco di tabelle aggiuntive (oauth_clients, oauth_scopes, oauth_access_tokens ", ecc.) ma preferirei evitare di creare un sacco di nuove raccolte.Probabilmente, con mongo posso sfruttare i dati nidificati .
Inoltre, allegare le informazioni oauth all'utente significherebbe poterci affidarci all'ACL delle app per l'autorizzazione (anziché agli ambiti) e utilizzare l'archiviazione oauth per il semplice rilascio e la verifica di codici di autenticazione, token di accesso, token di aggiornamento, ecc.
Non ho ancora iniziato lo sviluppo, solo cercando di capire un modo pulito per gestire le cose di Oauth. Gradirei qualsiasi feedback su questa implementazione, grazie