2017-01-03 5 views
1

Ich entwickle eine REST-API und ich habe einige Zweifel darüber, was die richtige Art und Weise ist, die Authentifizierung über JWT zu machen, welche Informationen in die Nutzlast des Tokens aufzunehmen und welche Best Practices und die sichersten sind :Sicherheit JWT in Payload

Ist die ObjectId der mongoDB sicher innerhalb des Payload-Tokens?

{ 
    "sub": "507f191e810c19729de861ea", 
    "name": "John Doe", 
    "rol": "admin" 
} 

Nach überprüfen Sie die 'sub' in dem Token, wenn der Benutzer auf geschützte Route navigiert wie:

“api/dashboard /: userId“ 

Und comparate in den reques, diesem Beispiel in Express.js

.get('api/dashboard/:userId', (req, res)=> { 
    if(Req.params.uiserID != token.payload.sub) { 
    Res.status(401).send({ message: ‘No authorization’}) 
} 
}) 

Wird das oben genannte als sicher betrachtet?

Antwort

0

Der Anspruch sub identifiziert den Principal, der Gegenstand des JWT ist, und wird voraussichtlich im Kontext des Ausstellers (oder global) einzigartig sein. Senden einer internen ID ist keine schlechte Praxis, solange Sie es als einzigartig halten, nicht ändern und keine privaten Daten preisgeben. (Eine interne hexadezimale Zeichenfolge kann nicht als privat betrachtet werden)

Auf der Serverseite müssen Sie die Signatur des Tokens überprüfen, um die Authentizität zu überprüfen, und die Daten wurden nicht geändert. Danach kann der Zugriff auf geschützte Ressourcen unter Verwendung der in JWT

eingebetteten Daten sicher überprüft werden
Verwandte Themen