azure-functions-auth
Version:
Authentication and Authorization for Azure Functions (with OAuth 2.0 and JWT)
73 lines (62 loc) • 2.41 kB
JavaScript
const createValidateJwt = require('./index.js');
const idAndAccessPublicKey = `-----BEGIN CERTIFICATE-----
MIIDCzCCAfOgAwIBAgIJBraIuU0JYA+9MA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV
BAMTGGlkYW5kYWNjZXNzLmV1LmF1dGgwLmNvbTAeFw0xOTA3MzExOTE5MzZaFw0z
MzA0MDgxOTE5MzZaMCMxITAfBgNVBAMTGGlkYW5kYWNjZXNzLmV1LmF1dGgwLmNv
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKSKY5SlOEHRihdx83Gp
speLZpa8leOB4TN/XDutPc6IGJoadLFJv2HLlFBbmVUaq2buhpL02K3NzMHgBHL/
892RtACrld0HE9FAsyVGd1KlKuhBj94h/wB2+oLwQ7NgOya854/VUoH5Q9l1qmNu
OlHTE0PkEfXLxCvVcvpjMzpAAN6iB+KOzz34rdQtge6M5tuCTgfigY5dy2H8+z4t
qV7HDN3Xatwq3Dn5oJN2egA6/dTK0j6RYSAqStbWn9phPe7iHlB6BzhlhX2J+APM
/e1e9FDGL4igBZfbzqQrEFXsAd4TzqtbMtolVcahH4S+L96t4WEORtNvkXlGjgU7
QJECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU50E6vJe86nAh
LhHphjdfoM4m9wowDgYDVR0PAQH/BAQDAgKEMA0GCSqGSIb3DQEBCwUAA4IBAQCH
4G0IRPgITM+QMDzdR8N+xl8S9IK2SC9iMZ5S5emuJa78ofBFx48mMHpjSvi93dQU
nNIm6si9zghArhUjFYICpiKhGza8mSilmTuIGcTR/1iJj61GWekc89aqQ6uGGzIP
/f0XzdaNBKKSRfvIm85SNyQ+YQKvCPtcSwLPpDR980U3u4x++gEuXeR85p6DrC6z
dieexJ5POf0YaXGLN4WgEVK73VATApwSHf5LjWllLlPwILC9MkxWF8Wszsc98ATw
jmJvkxBaRdQNUltryfgW1cWqlcFSO895s5rP4QNyVMEBGn3x5jTO4TufcgG0hYNR
nwMPN8hFOPwOF8zQp2YA
-----END CERTIFICATE-----
`;
const idAndAccessIssuer = 'https://idandaccess.eu.auth0.com/';
const options = {
algorithms: ['RS256'],
domain: idAndAccessIssuer
};
test('clientId and clientSecret parameters', () => {
options.clientId = 'bar';
options.clientSecret = idAndAccessPublicKey;
const validateJwt = createValidateJwt(options);
result = validateJwt();
expect(result).toBeTruthy();
});
test('audience and publicKey parameters sync', () => {
options.audience = 'bar';
options.publicKey = idAndAccessPublicKey;
const validateJwt = createValidateJwt(options);
result = validateJwt(undefined, false);
expect(typeof result).toBe('function');
expect(() => {
result();
}).toThrow();
result = validateJwt();
expect(typeof result).toBe('function');
expect(() => {
result();
}).toThrow();
});
test('audience and publicKey parameters async', () => {
const options = {
algorithms: ['RS256'],
domain: 'foo',
audience: 'bar',
publicKey: `----BEGIN CERT
asdfasdfadfa`
};
const validateJwt = createValidateJwt(options);
result = validateJwt(undefined, true);
result2 = result();
expect(typeof result).toBe('function');
expect(typeof result2.then).toBe('function');
});