feat: new auth mechnasimn via http post (#99)
* Added HTTP Authentication * Fixed sample config * Added filter by status code
This commit is contained in:
parent
1778948ee2
commit
279541a669
@ -67,4 +67,11 @@ module.exports = {
|
|||||||
validHosts: ['gmail.com']
|
validHosts: ['gmail.com']
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/** HTTP AUTH
|
||||||
|
authentication: 'HTTPAuth',
|
||||||
|
authenticationOptions: {
|
||||||
|
url: 'https://my-website.com/api/backend-login'
|
||||||
|
}
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
"main": "dist/app.js",
|
"main": "dist/app.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@hokify/node-ts-cache": "^5.4.1",
|
"@hokify/node-ts-cache": "^5.4.1",
|
||||||
|
"axios": "^0.21.1",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
"imap-simple": "^5.0.0",
|
"imap-simple": "^5.0.0",
|
||||||
"ldapauth-fork": "^5.0.1",
|
"ldapauth-fork": "^5.0.1",
|
||||||
|
45
src/auth/HTTPAuth.ts
Normal file
45
src/auth/HTTPAuth.ts
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import axios from 'axios';
|
||||||
|
import { IAuthentication } from '../types/Authentication';
|
||||||
|
|
||||||
|
interface IHTTPAuthOptions {
|
||||||
|
url: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class HTTPAuth implements IAuthentication {
|
||||||
|
private url: string;
|
||||||
|
|
||||||
|
constructor(config: IHTTPAuthOptions) {
|
||||||
|
this.url = config.url;
|
||||||
|
}
|
||||||
|
|
||||||
|
async authenticate(username: string, password: string) {
|
||||||
|
let success = false;
|
||||||
|
try {
|
||||||
|
await axios
|
||||||
|
.post(
|
||||||
|
this.url,
|
||||||
|
{
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
validateStatus(status) {
|
||||||
|
return status >= 200 && status < 500;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then((res) => {
|
||||||
|
console.log(`Code: ${res.status}`);
|
||||||
|
if (res.status === 200) {
|
||||||
|
success = true;
|
||||||
|
console.log('Return code 200, HTTP authentication successful');
|
||||||
|
} else {
|
||||||
|
console.log('HTTP authentication failed');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
console.error('HTTP response error');
|
||||||
|
}
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user