frickerg / Web-Engineering-3

MAS SE (CAS 3) 2024
0 stars 0 forks source link

Access Control: Passwort-Hash/Salt-Paar generieren & Login-Endpoint (Backend) #67

Closed jvanf closed 6 days ago

jvanf commented 1 month ago

Vorlesungsfolien Abend 2

  1. Endpoint erstellen, der aus Passwörter ein Passwort-Hash/Salt-Paar generiert • crypto.randomBytes(), crypt.scrypt() • Damit User-Liste von Hand befüllt werden kann
  2. User-Liste in Backend-Variable anlegen (username, role passwordHash, salt)
  3. Login-Endpoint erstellen, der Username/Password überprüft und das Access Token, Username und Rolle zurückgibt • Achtung: Access Token muss die Rolle als Claim enthalten
  4. Middleware-Funktion(en) erstellen, das für geschützte Ressourcen das Access Token (inkl. Role-Claim) überprüft • Stateless: Die Überprüfung darf/muss nicht auf die User-Liste zugreiffen. Alle Infos sind im Access-Token enthalten
  5. Game-Schnittstelle anpassen und sicherstellen, dass man nur auf das eigene Game zugreifen kann
app.get('/api/password-generator/:password', async (req, res) => {
const password = req.params.password
// implement...
})

app.post('/api/login'
, async (req, res) => {
const { username, password } = req.body
// implement...
})

Tipp: UI erst implementieren, wenn das Ganze mit Postman funktioniert. -> jwt.