== Why is this an issue? include::../description.adoc[] === Noncompliant code example https://www.npmjs.com/package/jsonwebtoken[jsonwebtoken] library: [source,javascript] ---- const jwt = require('jsonwebtoken'); let token = jwt.sign({ foo: 'bar' }, key, { algorithm: 'none' }); // Noncompliant: 'none' cipher doesn't sign the JWT (no signature will be included) jwt.verify(token, key, { expiresIn: 360000 * 5, algorithms: ['RS256', 'none'] }, callbackcheck); // Noncompliant: 'none' cipher should not be used when verifying JWT signature ---- === Compliant solution https://www.npmjs.com/package/jsonwebtoken[jsonwebtoken] library: [source,javascript] ---- const jwt = require('jsonwebtoken'); let token = jwt.sign({ foo: 'bar' }, key, { algorithm: 'HS256' }); // Compliant jwt.verify(token, key, { expiresIn: 360000 * 5, algorithms: ['HS256'] }, callbackcheck); // Compliant ---- include::../see.adoc[] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] === Highlighting * primary location: the call to sign/verify method * secondary location: on the incorrect option argument (third argument) ** message: 'The "algorithms" option should be defined and should not contain 'none'.' ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]