made verifyAsync available to check other tokens (like refresh tokens)
This commit is contained in:
		
							parent
							
								
									5053963874
								
							
						
					
					
						commit
						4345725c83
					
				@ -50,6 +50,15 @@ function extractAccessToken(req) {
 | 
				
			|||||||
function verifyToken(token) {
 | 
					function verifyToken(token) {
 | 
				
			||||||
  var jwt = require('jsonwebtoken');
 | 
					  var jwt = require('jsonwebtoken');
 | 
				
			||||||
  var decoded;
 | 
					  var decoded;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!token) {
 | 
				
			||||||
 | 
					    return PromiseA.reject({
 | 
				
			||||||
 | 
					      message: 'no token provided'
 | 
				
			||||||
 | 
					    , code: 'E_NO_TOKEN'
 | 
				
			||||||
 | 
					    , url: 'https://oauth3.org/docs/errors#E_NO_TOKEN'
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
    decoded = jwt.decode(token, {complete: true});
 | 
					    decoded = jwt.decode(token, {complete: true});
 | 
				
			||||||
  } catch (e) {}
 | 
					  } catch (e) {}
 | 
				
			||||||
@ -160,6 +169,10 @@ function attachOauth3(req, res, next) {
 | 
				
			|||||||
  req.oauth3 = {};
 | 
					  req.oauth3 = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  extractAccessToken(req).then(function (token) {
 | 
					  extractAccessToken(req).then(function (token) {
 | 
				
			||||||
 | 
					    req.oauth3.verifyAsync = function (jwt) {
 | 
				
			||||||
 | 
					      return verifyToken(jwt || token);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!token) {
 | 
					    if (!token) {
 | 
				
			||||||
      return null;
 | 
					      return null;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -181,14 +194,10 @@ function attachOauth3(req, res, next) {
 | 
				
			|||||||
    req.oauth3.token = decoded;
 | 
					    req.oauth3.token = decoded;
 | 
				
			||||||
    req.oauth3.ppid = ppid;
 | 
					    req.oauth3.ppid = ppid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    req.oauth3.verifyAsync = function () {
 | 
					    req.oauth3.rescope = function (sub) {
 | 
				
			||||||
      return verifyToken(token);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    req.oauth3.rescope = function () {
 | 
					 | 
				
			||||||
      // TODO: this function is supposed to convert PPIDs of different parties to some account
 | 
					      // TODO: this function is supposed to convert PPIDs of different parties to some account
 | 
				
			||||||
      // ID that allows application to keep track of permisions and what-not.
 | 
					      // ID that allows application to keep track of permisions and what-not.
 | 
				
			||||||
      return PromiseA.resolve(ppid);
 | 
					      return PromiseA.resolve(sub || ppid);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  }).then(function () {
 | 
					  }).then(function () {
 | 
				
			||||||
    next();
 | 
					    next();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user