all files / src/ JWTSecuredRequest.js

100% Statements 11/11
100% Branches 4/4
100% Functions 3/3
100% Lines 11/11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39              30× 30×       90×       30×       30×           30× 16×   14×     30×        
'use strict';
 
var _ = require('underscore'),
    Request = require('./Request'),
    JWTValidator = require('./JWTValidator');
 
module.exports = Request.extend({
 
   init: function(evt, context, opts) {
      this._super(evt, context, opts);
      this._token = false;
   },
 
   getToken: function() {
      return this._token;
   },
 
   validateAuthorizationHeader: function(publicKey, validationUserOpts) {
      var validationOpts = _.isObject(validationUserOpts) ? validationUserOpts : {},
          validator = new JWTValidator(publicKey),
          validation;
 
      validation = validator
         .issuer(validationOpts.issuer)
         .audience(validationOpts.audience)
         .revocation(validationOpts.revokedTokenIDs)
         .validate(this.header('Authorization'), true, 'Authorization');
 
      if (_.isEmpty(validation.errors)) {
         this._token = validation.token;
      } else {
         this._token = false;
      }
 
      return validation;
   },
 
});