Cercare una buona spiegazione su come eseguire l'autenticazione tramite akka HTTP. Dato un percorso che assomigliaCome eseguire l'autenticazione tramite Akka HTTP
val route =
path("account") {
authenticateBasic(realm = "some realm", myAuthenticator) { user =>
get {
encodeResponseWith(Deflate) {
complete {
//do something here
}
}
}
}
}
The documentation delinea un modo, ma poi viene omesso la parte pertinente esegue l'autenticazione reale ...
// backend entry points
def myAuthenticator: Authenticator[User] = ???
Dove posso trovare un esempio di implementazione di un tale autenticatore ? Ho già la logica per autenticare un utente con un nome utente e una password, ma quello che non riesco a capire è come ottenere un nome utente/password (o un token che contiene entrambi) dalla richiesta HTTP (o RequestContext).
questo sta facendo più senso, ma non capisco la linea 'if (p.verifySecret (myGetSecret (nome utente))' Qualche possibilità si potrebbe spiegare un po 'di chiamate segrete? – mattmar10
@ user1551604 ' myGetSecret' è la tua funzione personalizzata che ottiene 'username' e restituisce il tuo segreto (ad es. password), ottenendolo possibilmente dal database.' verifySecret' confronterà in modo sicuro (per evitare l'attacco temporale) fornita la password con myGetSecret – dk14
grazie per l'aggiunta Questo aiuta un po ', quindi qual è il parametro nella funzione 'myGetSecret'? Suppongo che sia solo una stringa? Cosa deve restituire? Ho la password per gli utenti archiviati (in formato hash con BCrypt). sarebbe la password unhashed? – mattmar10