You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							43 lines
						
					
					
						
							1.4 KiB
						
					
					
				| var fs = require('fs');
 | |
| var path = require('path');
 | |
| var jwt = require('../index');
 | |
| var JsonWebTokenError = require('../lib/JsonWebTokenError');
 | |
| var expect = require('chai').expect;
 | |
| 
 | |
| 
 | |
| var pub = fs.readFileSync(path.join(__dirname, 'pub.pem'), 'utf8');
 | |
| // priv is never used
 | |
| // var priv = fs.readFileSync(path.join(__dirname, 'priv.pem'));
 | |
| 
 | |
| var TOKEN = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmb28iOiJiYXIiLCJpYXQiOjE0MjY1NDY5MTl9.ETgkTn8BaxIX4YqvUWVFPmum3moNZ7oARZtSBXb_vP4';
 | |
| 
 | |
| describe('when setting a wrong `header.alg`', function () {
 | |
| 
 | |
|   describe('signing with pub key as symmetric', function () {
 | |
|     it('should not verify', function () {
 | |
|       expect(function () {
 | |
|         jwt.verify(TOKEN, pub);
 | |
|       }).to.throw(JsonWebTokenError, /invalid algorithm/);
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('signing with pub key as HS256 and whitelisting only RS256', function () {
 | |
|     it('should not verify', function () {
 | |
|       expect(function () {
 | |
|         jwt.verify(TOKEN, pub, {algorithms: ['RS256']});
 | |
|       }).to.throw(JsonWebTokenError, /invalid algorithm/);
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('signing with HS256 and checking with HS384', function () {
 | |
|     it('should not verify', function () {
 | |
|       expect(function () {
 | |
|         var token = jwt.sign({foo: 'bar'}, 'secret', {algorithm: 'HS256'});
 | |
|         jwt.verify(token, 'some secret', {algorithms: ['HS384']});
 | |
|       }).to.throw(JsonWebTokenError, /invalid algorithm/);
 | |
|     });
 | |
|   });
 | |
| 
 | |
| 
 | |
| });
 |