ra-auth-auth0 1.1.0 → 1.1.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/Readme.md +11 -6
- package/esm/authProvider.d.ts +9 -6
- package/esm/authProvider.d.ts.map +1 -1
- package/esm/authProvider.js +19 -13
- package/esm/httpClient.d.ts.map +1 -1
- package/esm/httpClient.js +12 -2
- package/lib/authProvider.d.ts +9 -6
- package/lib/authProvider.d.ts.map +1 -1
- package/lib/authProvider.js +19 -13
- package/lib/httpClient.d.ts.map +1 -1
- package/lib/httpClient.js +12 -2
- package/package.json +1 -1
- package/src/authProvider.ts +15 -13
- package/src/httpClient.ts +6 -1
package/Readme.md
CHANGED
|
@@ -20,6 +20,7 @@ npm install --save ra-auth-auth0
|
|
|
20
20
|
// in src/App.tsx
|
|
21
21
|
import React, { useEffect, useRef, useState } from 'react';
|
|
22
22
|
import { Admin, Resource } from 'react-admin';
|
|
23
|
+
import { BrowserRouter } from 'react-router-dom';
|
|
23
24
|
import { Auth0AuthProvider } from 'ra-auth-auth0';
|
|
24
25
|
import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
25
26
|
import dataProvider from './dataProvider';
|
|
@@ -41,17 +42,21 @@ const authProvider = Auth0AuthProvider(auth0, {
|
|
|
41
42
|
|
|
42
43
|
const App = () => {
|
|
43
44
|
return (
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
<BrowserRouter>
|
|
46
|
+
<Admin
|
|
47
|
+
authProvider={authProvider}
|
|
48
|
+
dataProvider={dataProvider}
|
|
49
|
+
>
|
|
50
|
+
<Resource name="posts" {...posts} />
|
|
51
|
+
</Admin>
|
|
52
|
+
</BrowserRouter>
|
|
50
53
|
);
|
|
51
54
|
};
|
|
52
55
|
export default App;
|
|
53
56
|
```
|
|
54
57
|
|
|
58
|
+
**Note:** You need to wrap your app in a [`BrowserRouter`](https://reactrouter.com/en/6/router-components/browser-router) component from `react-router-dom` for the `Auth0AuthProvider` to work.
|
|
59
|
+
|
|
55
60
|
## `Auth0AuthProvider` Parameters
|
|
56
61
|
|
|
57
62
|
- `loginRedirectUri` - _optional_ - URI used to override the redirect URI after successful login. Defaults to react-admin `/auth-callback` route.
|
package/esm/authProvider.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
|
7
7
|
* ```tsx
|
|
8
8
|
* import React from 'react';
|
|
9
9
|
* import { Admin, Resource } from 'react-admin';
|
|
10
|
+
* import { BrowserRouter } from 'react-router-dom';
|
|
10
11
|
* import { Auth0AuthProvider } from 'ra-auth-auth0';
|
|
11
12
|
* import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
12
13
|
* import dataProvider from './dataProvider';
|
|
@@ -28,13 +29,15 @@ import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
|
28
29
|
*
|
|
29
30
|
* const App = () => {
|
|
30
31
|
* return (
|
|
32
|
+
* <BrowserRouter>
|
|
31
33
|
* <Admin
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
34
|
+
* authProvider={authProvider}
|
|
35
|
+
* dataProvider={dataProvider}
|
|
36
|
+
* title="Example Admin"
|
|
37
|
+
* >
|
|
38
|
+
* <Resource name="posts" {...posts} />
|
|
39
|
+
* </Admin>
|
|
40
|
+
* <BrowserRouter>
|
|
38
41
|
* );
|
|
39
42
|
* };
|
|
40
43
|
* export default App;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authProvider.d.ts","sourceRoot":"","sources":["../src/authProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"authProvider.d.ts","sourceRoot":"","sources":["../src/authProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,eAAO,MAAM,iBAAiB,WAClB,WAAW;uBAMI,MAAM;wBACL,MAAM;0BACJ,OAAO;MAIlC,YAoFD,CAAC"}
|
package/esm/authProvider.js
CHANGED
|
@@ -42,6 +42,7 @@ import { PreviousLocationStorageKey } from 'ra-core';
|
|
|
42
42
|
* ```tsx
|
|
43
43
|
* import React from 'react';
|
|
44
44
|
* import { Admin, Resource } from 'react-admin';
|
|
45
|
+
* import { BrowserRouter } from 'react-router-dom';
|
|
45
46
|
* import { Auth0AuthProvider } from 'ra-auth-auth0';
|
|
46
47
|
* import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
47
48
|
* import dataProvider from './dataProvider';
|
|
@@ -63,13 +64,15 @@ import { PreviousLocationStorageKey } from 'ra-core';
|
|
|
63
64
|
*
|
|
64
65
|
* const App = () => {
|
|
65
66
|
* return (
|
|
67
|
+
* <BrowserRouter>
|
|
66
68
|
* <Admin
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
69
|
+
* authProvider={authProvider}
|
|
70
|
+
* dataProvider={dataProvider}
|
|
71
|
+
* title="Example Admin"
|
|
72
|
+
* >
|
|
73
|
+
* <Resource name="posts" {...posts} />
|
|
74
|
+
* </Admin>
|
|
75
|
+
* <BrowserRouter>
|
|
73
76
|
* );
|
|
74
77
|
* };
|
|
75
78
|
* export default App;
|
|
@@ -105,13 +108,16 @@ export var Auth0AuthProvider = function (client, _a) {
|
|
|
105
108
|
logout: function () {
|
|
106
109
|
return __awaiter(this, void 0, void 0, function () {
|
|
107
110
|
return __generator(this, function (_a) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
111
|
+
switch (_a.label) {
|
|
112
|
+
case 0: return [4 /*yield*/, client.logout({
|
|
113
|
+
logoutParams: {
|
|
114
|
+
returnTo: logoutRedirectUri || window.location.origin,
|
|
115
|
+
},
|
|
116
|
+
})];
|
|
117
|
+
case 1:
|
|
118
|
+
_a.sent();
|
|
119
|
+
return [2 /*return*/, false];
|
|
120
|
+
}
|
|
115
121
|
});
|
|
116
122
|
});
|
|
117
123
|
},
|
package/esm/httpClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,UAAU,gBAAiB,GAAG,WAClC,GAAG,WACC,WAAW,OAAO,GAAG,SAAS;;;;;
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,UAAU,gBAAiB,GAAG,WAClC,GAAG,WACC,WAAW,OAAO,GAAG,SAAS;;;;;EAa1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,UACjB,MAAM,GAAG,IAAI,WACX,WAAW,OAAO,GAAG,SAAS,KACxC,OASF,CAAC"}
|
package/esm/httpClient.js
CHANGED
|
@@ -52,12 +52,22 @@ import { fetchUtils } from 'ra-core';
|
|
|
52
52
|
* @returns a function with the same definition as `httpClient` that adds an `Authorization` header containing the Auth0 token.
|
|
53
53
|
*/
|
|
54
54
|
export var httpClient = function (auth0Client) { return function (url, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
-
var token, requestHeaders;
|
|
55
|
+
var token, error_1, requestHeaders;
|
|
56
56
|
return __generator(this, function (_a) {
|
|
57
57
|
switch (_a.label) {
|
|
58
|
-
case 0:
|
|
58
|
+
case 0:
|
|
59
|
+
token = null;
|
|
60
|
+
_a.label = 1;
|
|
59
61
|
case 1:
|
|
62
|
+
_a.trys.push([1, 3, , 4]);
|
|
63
|
+
return [4 /*yield*/, auth0Client.getTokenSilently()];
|
|
64
|
+
case 2:
|
|
60
65
|
token = _a.sent();
|
|
66
|
+
return [3 /*break*/, 4];
|
|
67
|
+
case 3:
|
|
68
|
+
error_1 = _a.sent();
|
|
69
|
+
return [3 /*break*/, 4];
|
|
70
|
+
case 4:
|
|
61
71
|
requestHeaders = getAuth0Headers(token, options);
|
|
62
72
|
return [2 /*return*/, fetchUtils.fetchJson(url, __assign(__assign({}, options), { headers: requestHeaders }))];
|
|
63
73
|
}
|
package/lib/authProvider.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
|
7
7
|
* ```tsx
|
|
8
8
|
* import React from 'react';
|
|
9
9
|
* import { Admin, Resource } from 'react-admin';
|
|
10
|
+
* import { BrowserRouter } from 'react-router-dom';
|
|
10
11
|
* import { Auth0AuthProvider } from 'ra-auth-auth0';
|
|
11
12
|
* import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
12
13
|
* import dataProvider from './dataProvider';
|
|
@@ -28,13 +29,15 @@ import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
|
28
29
|
*
|
|
29
30
|
* const App = () => {
|
|
30
31
|
* return (
|
|
32
|
+
* <BrowserRouter>
|
|
31
33
|
* <Admin
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
34
|
+
* authProvider={authProvider}
|
|
35
|
+
* dataProvider={dataProvider}
|
|
36
|
+
* title="Example Admin"
|
|
37
|
+
* >
|
|
38
|
+
* <Resource name="posts" {...posts} />
|
|
39
|
+
* </Admin>
|
|
40
|
+
* <BrowserRouter>
|
|
38
41
|
* );
|
|
39
42
|
* };
|
|
40
43
|
* export default App;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authProvider.d.ts","sourceRoot":"","sources":["../src/authProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"authProvider.d.ts","sourceRoot":"","sources":["../src/authProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,eAAO,MAAM,iBAAiB,WAClB,WAAW;uBAMI,MAAM;wBACL,MAAM;0BACJ,OAAO;MAIlC,YAoFD,CAAC"}
|
package/lib/authProvider.js
CHANGED
|
@@ -45,6 +45,7 @@ var ra_core_1 = require("ra-core");
|
|
|
45
45
|
* ```tsx
|
|
46
46
|
* import React from 'react';
|
|
47
47
|
* import { Admin, Resource } from 'react-admin';
|
|
48
|
+
* import { BrowserRouter } from 'react-router-dom';
|
|
48
49
|
* import { Auth0AuthProvider } from 'ra-auth-auth0';
|
|
49
50
|
* import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
50
51
|
* import dataProvider from './dataProvider';
|
|
@@ -66,13 +67,15 @@ var ra_core_1 = require("ra-core");
|
|
|
66
67
|
*
|
|
67
68
|
* const App = () => {
|
|
68
69
|
* return (
|
|
70
|
+
* <BrowserRouter>
|
|
69
71
|
* <Admin
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
72
|
+
* authProvider={authProvider}
|
|
73
|
+
* dataProvider={dataProvider}
|
|
74
|
+
* title="Example Admin"
|
|
75
|
+
* >
|
|
76
|
+
* <Resource name="posts" {...posts} />
|
|
77
|
+
* </Admin>
|
|
78
|
+
* <BrowserRouter>
|
|
76
79
|
* );
|
|
77
80
|
* };
|
|
78
81
|
* export default App;
|
|
@@ -108,13 +111,16 @@ var Auth0AuthProvider = function (client, _a) {
|
|
|
108
111
|
logout: function () {
|
|
109
112
|
return __awaiter(this, void 0, void 0, function () {
|
|
110
113
|
return __generator(this, function (_a) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
switch (_a.label) {
|
|
115
|
+
case 0: return [4 /*yield*/, client.logout({
|
|
116
|
+
logoutParams: {
|
|
117
|
+
returnTo: logoutRedirectUri || window.location.origin,
|
|
118
|
+
},
|
|
119
|
+
})];
|
|
120
|
+
case 1:
|
|
121
|
+
_a.sent();
|
|
122
|
+
return [2 /*return*/, false];
|
|
123
|
+
}
|
|
118
124
|
});
|
|
119
125
|
});
|
|
120
126
|
},
|
package/lib/httpClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,UAAU,gBAAiB,GAAG,WAClC,GAAG,WACC,WAAW,OAAO,GAAG,SAAS;;;;;
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,UAAU,gBAAiB,GAAG,WAClC,GAAG,WACC,WAAW,OAAO,GAAG,SAAS;;;;;EAa1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,UACjB,MAAM,GAAG,IAAI,WACX,WAAW,OAAO,GAAG,SAAS,KACxC,OASF,CAAC"}
|
package/lib/httpClient.js
CHANGED
|
@@ -55,12 +55,22 @@ var ra_core_1 = require("ra-core");
|
|
|
55
55
|
* @returns a function with the same definition as `httpClient` that adds an `Authorization` header containing the Auth0 token.
|
|
56
56
|
*/
|
|
57
57
|
var httpClient = function (auth0Client) { return function (url, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
58
|
-
var token, requestHeaders;
|
|
58
|
+
var token, error_1, requestHeaders;
|
|
59
59
|
return __generator(this, function (_a) {
|
|
60
60
|
switch (_a.label) {
|
|
61
|
-
case 0:
|
|
61
|
+
case 0:
|
|
62
|
+
token = null;
|
|
63
|
+
_a.label = 1;
|
|
62
64
|
case 1:
|
|
65
|
+
_a.trys.push([1, 3, , 4]);
|
|
66
|
+
return [4 /*yield*/, auth0Client.getTokenSilently()];
|
|
67
|
+
case 2:
|
|
63
68
|
token = _a.sent();
|
|
69
|
+
return [3 /*break*/, 4];
|
|
70
|
+
case 3:
|
|
71
|
+
error_1 = _a.sent();
|
|
72
|
+
return [3 /*break*/, 4];
|
|
73
|
+
case 4:
|
|
64
74
|
requestHeaders = (0, exports.getAuth0Headers)(token, options);
|
|
65
75
|
return [2 /*return*/, ra_core_1.fetchUtils.fetchJson(url, __assign(__assign({}, options), { headers: requestHeaders }))];
|
|
66
76
|
}
|
package/package.json
CHANGED
package/src/authProvider.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
|
8
8
|
* ```tsx
|
|
9
9
|
* import React from 'react';
|
|
10
10
|
* import { Admin, Resource } from 'react-admin';
|
|
11
|
+
* import { BrowserRouter } from 'react-router-dom';
|
|
11
12
|
* import { Auth0AuthProvider } from 'ra-auth-auth0';
|
|
12
13
|
* import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
13
14
|
* import dataProvider from './dataProvider';
|
|
@@ -29,13 +30,15 @@ import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
|
29
30
|
*
|
|
30
31
|
* const App = () => {
|
|
31
32
|
* return (
|
|
33
|
+
* <BrowserRouter>
|
|
32
34
|
* <Admin
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
35
|
+
* authProvider={authProvider}
|
|
36
|
+
* dataProvider={dataProvider}
|
|
37
|
+
* title="Example Admin"
|
|
38
|
+
* >
|
|
39
|
+
* <Resource name="posts" {...posts} />
|
|
40
|
+
* </Admin>
|
|
41
|
+
* <BrowserRouter>
|
|
39
42
|
* );
|
|
40
43
|
* };
|
|
41
44
|
* export default App;
|
|
@@ -75,13 +78,12 @@ export const Auth0AuthProvider = (
|
|
|
75
78
|
},
|
|
76
79
|
// called when the user clicks on the logout button
|
|
77
80
|
async logout() {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
.then(() => logoutRedirectUri || '/');
|
|
81
|
+
await client.logout({
|
|
82
|
+
logoutParams: {
|
|
83
|
+
returnTo: logoutRedirectUri || window.location.origin,
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
return false;
|
|
85
87
|
},
|
|
86
88
|
// called when the API returns an error
|
|
87
89
|
async checkError({ status }) {
|
package/src/httpClient.ts
CHANGED
|
@@ -9,7 +9,12 @@ export const httpClient = (auth0Client: any) => async (
|
|
|
9
9
|
url: any,
|
|
10
10
|
options: fetchUtils.Options | undefined
|
|
11
11
|
) => {
|
|
12
|
-
|
|
12
|
+
let token: string | null = null;
|
|
13
|
+
try {
|
|
14
|
+
token = await auth0Client.getTokenSilently();
|
|
15
|
+
} catch (error) {
|
|
16
|
+
// Nothing to do, we just won't set the Authorization header
|
|
17
|
+
}
|
|
13
18
|
const requestHeaders = getAuth0Headers(token, options);
|
|
14
19
|
return fetchUtils.fetchJson(url, {
|
|
15
20
|
...options,
|