UNPKG

@zkp2p/reclaim-witness-sdk

Version:

<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>

75 lines 6.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ethers_1 = require("ethers"); const client_1 = require("../client"); const config_1 = require("../config"); const providers_1 = require("../providers"); const server_1 = require("../server"); const mock_provider_server_1 = require("../tests/mock-provider-server"); const utils_1 = require("../tests/utils"); const utils_2 = require("../utils"); describe('Authentication Tests', () => { const authKp = ethers_1.ethers.Wallet.createRandom(); let wsServer; let wsServerUrl; let claimUrl; let privateKeyHex; const wsServerPort = (0, utils_1.getRandomPort)(); const httpsServerPort = (0, utils_1.getRandomPort)(); const mockHttpsServer = (0, mock_provider_server_1.createMockServer)(httpsServerPort); beforeAll(async () => { wsServer = await (0, server_1.createServer)(wsServerPort); wsServerUrl = `ws://localhost:${wsServerPort}${config_1.WS_PATHNAME}`; process.env.AUTHENTICATION_PUBLIC_KEY = authKp.publicKey; claimUrl = `https://localhost:${httpsServerPort}/me`; privateKeyHex = (0, utils_1.randomPrivateKey)(); // we need to disable certificate verification // for testing purposes providers_1.providers.http.additionalClientOptions = { verifyServerCertificate: false }; }); afterAll(() => { delete process.env.AUTHENTICATION_PUBLIC_KEY; wsServer.close(); mockHttpsServer.server.close(); }); it('should fail to create a claim w/o authentication', async () => { await expect(createClaim(undefined)).rejects.toMatchObject({ message: 'User must be authenticated' }); }); it('should block claim creation if host not in whitelist', async () => { const auth = await (0, utils_2.createAuthRequest)({ id: '1234', hostWhitelist: ['api.abcd.com'] }, authKp.privateKey); await expect(createClaim(auth)).rejects.toMatchObject({ message: 'Host \"localhost\" not allowed by auth request' }); }); it('should create claim after authentication', async () => { const auth = await (0, utils_2.createAuthRequest)({ id: '1234', hostWhitelist: ['localhost'] }, authKp.privateKey); await createClaim(auth); }); function createClaim(authRequest) { const user = 'testing-123'; return (0, client_1.createClaimOnAttestor)({ name: 'http', params: { url: claimUrl, method: 'GET', responseRedactions: [], responseMatches: [ { type: 'contains', value: `${user}@mock.com` } ] }, secretParams: { authorisationHeader: `Bearer ${user}` }, ownerPrivateKey: privateKeyHex, client: { url: wsServerUrl, authRequest } }); } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QuYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUErQjtBQUMvQix1Q0FBa0Q7QUFDbEQsdUNBQXdDO0FBRXhDLDZDQUF5QztBQUN6Qyx1Q0FBeUM7QUFDekMseUVBQWlFO0FBQ2pFLDJDQUFpRTtBQUNqRSxxQ0FBNkM7QUFHN0MsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUVyQyxNQUFNLE1BQU0sR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQzNDLElBQUksUUFBeUIsQ0FBQTtJQUU3QixJQUFJLFdBQW1CLENBQUE7SUFDdkIsSUFBSSxRQUFnQixDQUFBO0lBQ3BCLElBQUksYUFBcUIsQ0FBQTtJQUV6QixNQUFNLFlBQVksR0FBRyxJQUFBLHFCQUFhLEdBQUUsQ0FBQTtJQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFBLHFCQUFhLEdBQUUsQ0FBQTtJQUV2QyxNQUFNLGVBQWUsR0FBRyxJQUFBLHVDQUFnQixFQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRXpELFNBQVMsQ0FBQyxLQUFLLElBQUcsRUFBRTtRQUNuQixRQUFRLEdBQUcsTUFBTSxJQUFBLHFCQUFZLEVBQUMsWUFBWSxDQUFDLENBQUE7UUFDM0MsV0FBVyxHQUFHLGtCQUFrQixZQUFZLEdBQUcsb0JBQVcsRUFBRSxDQUFBO1FBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUN4RCxRQUFRLEdBQUcscUJBQXFCLGVBQWUsS0FBSyxDQUFBO1FBQ3BELGFBQWEsR0FBRyxJQUFBLHdCQUFnQixHQUFFLENBQUE7UUFFbEMsOENBQThDO1FBQzlDLHVCQUF1QjtRQUN2QixxQkFBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUN4Qyx1QkFBdUIsRUFBRSxLQUFLO1NBQzlCLENBQUE7SUFDRixDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUE7UUFDNUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDL0IsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsa0RBQWtELEVBQUUsS0FBSyxJQUFHLEVBQUU7UUFDaEUsTUFBTSxNQUFNLENBQ1gsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUN0QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkIsT0FBTyxFQUFFLDRCQUE0QjtTQUNyQyxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUNwRSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEseUJBQWlCLEVBQ25DLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUMvQyxNQUFNLENBQUMsVUFBVSxDQUNqQixDQUFBO1FBRUQsTUFBTSxNQUFNLENBQ1gsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUNqQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkIsT0FBTyxFQUFFLGdEQUFnRDtTQUN6RCxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEseUJBQWlCLEVBQ25DLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUM1QyxNQUFNLENBQUMsVUFBVSxDQUNqQixDQUFBO1FBRUQsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLFdBQVcsQ0FBQyxXQUE4QztRQUNsRSxNQUFNLElBQUksR0FBRyxhQUFhLENBQUE7UUFDMUIsT0FBTyxJQUFBLDhCQUFxQixFQUFDO1lBQzVCLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFO2dCQUNQLEdBQUcsRUFBRSxRQUFRO2dCQUNiLE1BQU0sRUFBRSxLQUFLO2dCQUNiLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLGVBQWUsRUFBRTtvQkFDaEI7d0JBQ0MsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLEtBQUssRUFBRSxHQUFHLElBQUksV0FBVztxQkFDekI7aUJBQ0Q7YUFDRDtZQUNELFlBQVksRUFBRTtnQkFDYixtQkFBbUIsRUFBRSxVQUFVLElBQUksRUFBRTthQUNyQztZQUNELGVBQWUsRUFBRSxhQUFhO1lBQzlCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO1NBQ3pDLENBQUMsQ0FBQTtJQUNILENBQUM7QUFDRixDQUFDLENBQUMsQ0FBQSJ9