@mattygt86/daturetech-auth-library 0.0.0-alpha.0 → 0.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth.abstract.d.ts +3 -1
- package/dist/auth.abstract.d.ts.map +1 -1
- package/dist/auth.d.ts +3 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +3 -0
- package/dist/providers/auth0.provider.d.ts +3 -1
- package/dist/providers/auth0.provider.d.ts.map +1 -1
- package/dist/providers/auth0.provider.js +40 -20
- package/dist/types/auth0.d.ts +8 -0
- package/dist/types/auth0.d.ts.map +1 -0
- package/dist/types/auth0.js +2 -0
- package/package.json +1 -1
- package/src/auth.abstract.ts +4 -1
- package/src/auth.ts +6 -1
- package/src/providers/auth0.provider.ts +38 -14
- package/src/types/auth0.ts +7 -0
package/dist/auth.abstract.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { TUser } from "./types/auth0";
|
|
1
2
|
export declare abstract class AuthProvider {
|
|
2
|
-
abstract login(email: string, password: string): Promise<
|
|
3
|
+
abstract login(email: string, password: string): Promise<TUser | Error>;
|
|
3
4
|
abstract resetPassword(email: string): Promise<void>;
|
|
4
5
|
abstract logout(): Promise<void>;
|
|
6
|
+
abstract currentUser(accessToken: string): Promise<TUser | Error>;
|
|
5
7
|
}
|
|
6
8
|
//# sourceMappingURL=auth.abstract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.abstract.d.ts","sourceRoot":"","sources":["../src/auth.abstract.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IAC9B,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"auth.abstract.d.ts","sourceRoot":"","sources":["../src/auth.abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,8BAAsB,YAAY;IAC9B,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACvE,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;CACpE"}
|
package/dist/auth.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TUser } from "./types/auth0";
|
|
1
2
|
export declare class Auth {
|
|
2
3
|
private provider;
|
|
3
4
|
constructor(providerName: string, config: {
|
|
@@ -6,8 +7,9 @@ export declare class Auth {
|
|
|
6
7
|
clientId: string;
|
|
7
8
|
clientSecret: string;
|
|
8
9
|
});
|
|
9
|
-
login(email: string, password: string): Promise<
|
|
10
|
+
login(email: string, password: string): Promise<TUser | Error>;
|
|
10
11
|
resetPassword(email: string): Promise<void>;
|
|
11
12
|
logout(): Promise<void>;
|
|
13
|
+
currentUser(accessToken: string): Promise<Error | TUser>;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAe;gBAEnB,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAItH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IAI9D,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,MAAM;IAIN,WAAW,CAAC,WAAW,EAAE,MAAM;CAGhC"}
|
package/dist/auth.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { AuthProvider } from '../auth.abstract';
|
|
2
|
+
import { TUser } from '../types/auth0';
|
|
2
3
|
export declare class Auth0Provider extends AuthProvider {
|
|
3
4
|
private domain;
|
|
4
5
|
private audience;
|
|
5
6
|
private clientId;
|
|
6
7
|
private clientSecret;
|
|
7
8
|
constructor(domain: string, audience: string, clientId: string, clientSecret: string);
|
|
8
|
-
login(email: string, password: string): Promise<
|
|
9
|
+
login(email: string, password: string): Promise<TUser | Error>;
|
|
9
10
|
resetPassword(email: string): Promise<void>;
|
|
10
11
|
logout(): Promise<void>;
|
|
12
|
+
currentUser(accessToken: string): Promise<TUser | Error>;
|
|
11
13
|
}
|
|
12
14
|
export default Auth0Provider;
|
|
13
15
|
//# sourceMappingURL=auth0.provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth0.provider.d.ts","sourceRoot":"","sources":["../../src/providers/auth0.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth0.provider.d.ts","sourceRoot":"","sources":["../../src/providers/auth0.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAQ9E,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IAoB9D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;CAsB/D;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -25,30 +25,28 @@ class Auth0Provider extends auth_abstract_1.AuthProvider {
|
|
|
25
25
|
}
|
|
26
26
|
login(email, password) {
|
|
27
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
console.log("AXIOS response", response);
|
|
41
|
-
console.log('Auth0 Login Response:', response.data);
|
|
28
|
+
try {
|
|
29
|
+
const response = yield axios_1.default.post(`https://${this.domain}/oauth/token`, {
|
|
30
|
+
client_id: this.clientId,
|
|
31
|
+
client_secret: this.clientSecret,
|
|
32
|
+
grant_type: 'password',
|
|
33
|
+
username: email,
|
|
34
|
+
password: password,
|
|
35
|
+
audience: `https://${this.audience}`,
|
|
36
|
+
scope: "openid profile email"
|
|
37
|
+
}, {
|
|
38
|
+
headers: { 'Content-Type': 'application/json' }
|
|
39
|
+
});
|
|
42
40
|
return response.data;
|
|
43
|
-
}
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
44
43
|
console.error(error);
|
|
45
|
-
|
|
46
|
-
}
|
|
44
|
+
return Promise.reject(new Error((error instanceof Error) ? error.message : 'An error has occured'));
|
|
45
|
+
}
|
|
47
46
|
});
|
|
48
47
|
}
|
|
49
48
|
resetPassword(email) {
|
|
50
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
console.log(`Resetting password with Auth0: ${email}`);
|
|
52
50
|
const response = yield axios_1.default.post(`https://${this.domain}/dbconnections/change_password`, {
|
|
53
51
|
client_id: this.clientId,
|
|
54
52
|
email: email,
|
|
@@ -56,16 +54,38 @@ class Auth0Provider extends auth_abstract_1.AuthProvider {
|
|
|
56
54
|
}, {
|
|
57
55
|
headers: { 'Content-Type': 'application/json' }
|
|
58
56
|
});
|
|
59
|
-
console.log('Auth0 Reset Password Response:', response.data);
|
|
60
57
|
return response.data;
|
|
61
58
|
});
|
|
62
59
|
}
|
|
63
60
|
logout() {
|
|
64
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
console.log(`Logging out from Auth0`);
|
|
66
62
|
window.location.href = `https://${this.domain}/v2/logout?client_id=${this.clientId}&returnTo=${encodeURIComponent(window.location.origin)}`;
|
|
67
63
|
});
|
|
68
64
|
}
|
|
65
|
+
currentUser(accessToken) {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
console.log(accessToken);
|
|
68
|
+
try {
|
|
69
|
+
let config = {
|
|
70
|
+
method: 'get',
|
|
71
|
+
maxBodyLength: Infinity,
|
|
72
|
+
url: `https://${this.domain}/userinfo`,
|
|
73
|
+
headers: {
|
|
74
|
+
'Content-Type': 'application/json',
|
|
75
|
+
'Accept': 'application/json',
|
|
76
|
+
'Authorization': `Bearer ${accessToken}`
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const response = yield axios_1.default.request(config);
|
|
80
|
+
// console.log(response);
|
|
81
|
+
return response.data;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.error(error);
|
|
85
|
+
return Promise.reject(new Error((error instanceof Error) ? error.message : 'An error has occured'));
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
69
89
|
}
|
|
70
90
|
exports.Auth0Provider = Auth0Provider;
|
|
71
91
|
exports.default = Auth0Provider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth0.d.ts","sourceRoot":"","sources":["../../src/types/auth0.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB,CAAA"}
|
package/package.json
CHANGED
package/src/auth.abstract.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { TUser } from "./types/auth0";
|
|
2
|
+
|
|
1
3
|
export abstract class AuthProvider {
|
|
2
|
-
abstract login(email: string, password: string): Promise<
|
|
4
|
+
abstract login(email: string, password: string): Promise<TUser | Error>;
|
|
3
5
|
abstract resetPassword(email: string): Promise<void>;
|
|
4
6
|
abstract logout(): Promise<void>;
|
|
7
|
+
abstract currentUser(accessToken: string): Promise<TUser | Error>;
|
|
5
8
|
}
|
package/src/auth.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AuthProvider } from "./auth.abstract";
|
|
2
2
|
import AuthFactory from "./auth.factory";
|
|
3
|
+
import { TUser } from "./types/auth0";
|
|
3
4
|
|
|
4
5
|
// Main Auth class
|
|
5
6
|
export class Auth {
|
|
@@ -9,7 +10,7 @@ export class Auth {
|
|
|
9
10
|
this.provider = AuthFactory.createProvider(providerName, config);
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
login(email: string, password: string) {
|
|
13
|
+
login(email: string, password: string): Promise<TUser | Error> {
|
|
13
14
|
return this.provider.login(email, password);
|
|
14
15
|
}
|
|
15
16
|
|
|
@@ -20,4 +21,8 @@ export class Auth {
|
|
|
20
21
|
logout() {
|
|
21
22
|
return this.provider.logout();
|
|
22
23
|
}
|
|
24
|
+
|
|
25
|
+
currentUser(accessToken: string) {
|
|
26
|
+
return this.provider.currentUser(accessToken);
|
|
27
|
+
}
|
|
23
28
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { AuthProvider } from '../auth.abstract';
|
|
3
|
+
import { TUser } from '../types/auth0';
|
|
3
4
|
|
|
4
5
|
export class Auth0Provider extends AuthProvider {
|
|
5
6
|
private domain: string;
|
|
@@ -15,22 +16,24 @@ export class Auth0Provider extends AuthProvider {
|
|
|
15
16
|
this.clientSecret = clientSecret;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
async login(email: string, password: string): Promise<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
async login(email: string, password: string): Promise<TUser | Error> {
|
|
20
|
+
try {
|
|
21
|
+
const response = await axios.post(`https://${this.domain}/oauth/token`, {
|
|
22
|
+
client_id: this.clientId,
|
|
23
|
+
client_secret: this.clientSecret,
|
|
24
|
+
grant_type: 'password',
|
|
25
|
+
username: email,
|
|
26
|
+
password: password,
|
|
27
|
+
audience: `https://${this.audience}`,
|
|
28
|
+
scope: "openid profile email"
|
|
29
|
+
}, {
|
|
30
|
+
headers: { 'Content-Type': 'application/json' }
|
|
31
|
+
});
|
|
29
32
|
return response.data;
|
|
30
|
-
}
|
|
33
|
+
} catch (error) {
|
|
31
34
|
console.error(error);
|
|
32
|
-
|
|
33
|
-
}
|
|
35
|
+
return Promise.reject(new Error((error instanceof Error) ? error.message : 'An error has occured'));
|
|
36
|
+
}
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
async resetPassword(email: string): Promise<void> {
|
|
@@ -47,6 +50,27 @@ export class Auth0Provider extends AuthProvider {
|
|
|
47
50
|
async logout(): Promise<void> {
|
|
48
51
|
window.location.href = `https://${this.domain}/v2/logout?client_id=${this.clientId}&returnTo=${encodeURIComponent(window.location.origin)}`;
|
|
49
52
|
}
|
|
53
|
+
|
|
54
|
+
async currentUser(accessToken: string): Promise<TUser | Error> {
|
|
55
|
+
try {
|
|
56
|
+
let config = {
|
|
57
|
+
method: 'get',
|
|
58
|
+
maxBodyLength: Infinity,
|
|
59
|
+
url: `https://${this.domain}/userinfo`,
|
|
60
|
+
headers: {
|
|
61
|
+
'Content-Type': 'application/json',
|
|
62
|
+
'Accept': 'application/json',
|
|
63
|
+
'Authorization': `Bearer ${accessToken}`
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const response = await axios.request(config);
|
|
67
|
+
return response.data;
|
|
68
|
+
} catch (error) {
|
|
69
|
+
console.error(error);
|
|
70
|
+
return Promise.reject(new Error((error instanceof Error) ? error.message : 'An error has occured'));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
50
74
|
}
|
|
51
75
|
|
|
52
76
|
export default Auth0Provider;
|