complete redesign
This commit is contained in:
@ -1,3 +1,10 @@
|
||||
/*
|
||||
* Copyright (C) Sapphirecode - All Rights Reserved
|
||||
* This file is part of Auth-Server-Helper which is released under MIT.
|
||||
* See file 'LICENSE' for full license details.
|
||||
* Created by Timo Hocker <timo@scode.ovh>, January 2021
|
||||
*/
|
||||
|
||||
import http from 'http';
|
||||
|
||||
export class Response extends http.IncomingMessage {
|
||||
@ -5,19 +12,27 @@ export class Response extends http.IncomingMessage {
|
||||
}
|
||||
|
||||
export function get (
|
||||
headers: http.OutgoingHttpHeaders = {}
|
||||
// eslint-disable-next-line default-param-last
|
||||
headers: http.OutgoingHttpHeaders = {},
|
||||
body?: string
|
||||
): Promise<Response> {
|
||||
return new Promise ((resolve) => {
|
||||
http.get ('http://localhost:3000', { headers }, (res: Response) => {
|
||||
let body = '';
|
||||
const req = http.request ('http://localhost:3000', {
|
||||
headers,
|
||||
method: typeof body === 'string' ? 'POST' : 'GET'
|
||||
}, (res: Response) => {
|
||||
let data = '';
|
||||
res.on ('data', (d) => {
|
||||
body += d;
|
||||
data += d;
|
||||
});
|
||||
res.on ('end', () => {
|
||||
res.body = body;
|
||||
res.body = data;
|
||||
resolve (res);
|
||||
});
|
||||
});
|
||||
if (typeof body === 'string')
|
||||
req.write (body);
|
||||
req.end ();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
/*
|
||||
* Copyright (C) Sapphirecode - All Rights Reserved
|
||||
* This file is part of Auth-Server-Helper which is released under MIT.
|
||||
* See file 'LICENSE' for full license details.
|
||||
* Created by Timo Hocker <timo@scode.ovh>, January 2021
|
||||
*/
|
||||
|
||||
import http, { IncomingMessage, ServerResponse } from 'http';
|
||||
import { to_b64 } from '@sapphirecode/encoding-helper';
|
||||
import auth from '../../lib/Authority';
|
||||
@ -46,22 +53,37 @@ describe ('auth handler', () => {
|
||||
if (!req.is_basic) {
|
||||
req.invalid ('unknown autorization type');
|
||||
}
|
||||
else if (req.user !== 'foo' || req.password !== 'bar') {
|
||||
req.deny ();
|
||||
}
|
||||
else {
|
||||
else if (req.user === 'foo' && req.password === 'bar') {
|
||||
req.allow_access ({
|
||||
access_token_expires_in: expires_seconds,
|
||||
include_refresh_token: true,
|
||||
refresh_token_expires_in: refresh_expires_seconds
|
||||
});
|
||||
}
|
||||
else if (req.user === 'part' && req.password === 'bar') {
|
||||
req.allow_part (part_expires_seconds, 'two_factor');
|
||||
}
|
||||
else {
|
||||
req.deny ();
|
||||
}
|
||||
}, {
|
||||
cookie_name: 'cookie_jar',
|
||||
refresh: {
|
||||
access_token_expires_in: expires_seconds,
|
||||
refresh_token_expires_in: refresh_expires_seconds,
|
||||
include_refresh_token: true
|
||||
},
|
||||
modules: {
|
||||
two_factor (request) {
|
||||
if (request.body === 'letmein') {
|
||||
request.allow_access ({
|
||||
access_token_expires_in: expires_seconds,
|
||||
include_refresh_token: true,
|
||||
refresh_token_expires_in: refresh_expires_seconds
|
||||
});
|
||||
}
|
||||
else { request.deny (); }
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -183,7 +205,7 @@ describe ('auth handler', () => {
|
||||
});
|
||||
|
||||
|
||||
xit ('should process part token', async () => {
|
||||
it ('should process part token', async () => {
|
||||
const resp1 = await get ({ authorization: 'Basic part:bar' });
|
||||
expect (resp1.statusCode)
|
||||
.toEqual (200);
|
||||
@ -195,7 +217,8 @@ describe ('auth handler', () => {
|
||||
check_token (res1.data.part_token as string, 'part_token');
|
||||
|
||||
const resp2 = await get (
|
||||
{ authorization: `Bearer ${res1.data.part_token}` }
|
||||
{ authorization: `Bearer ${res1.data.part_token}` },
|
||||
'letmein'
|
||||
);
|
||||
expect (resp2.statusCode)
|
||||
.toEqual (200);
|
||||
|
@ -1,3 +1,10 @@
|
||||
/*
|
||||
* Copyright (C) Sapphirecode - All Rights Reserved
|
||||
* This file is part of Auth-Server-Helper which is released under MIT.
|
||||
* See file 'LICENSE' for full license details.
|
||||
* Created by Timo Hocker <timo@scode.ovh>, January 2021
|
||||
*/
|
||||
|
||||
import http from 'http';
|
||||
import gateway from '../../lib/Gateway';
|
||||
import authority from '../../lib/Authority';
|
||||
|
Reference in New Issue
Block a user