@atlasauth/react 0.2.0 → 0.3.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/CHANGELOG.md +7 -0
- package/dist/hooks.d.ts +24 -6
- package/dist/hooks.js +9 -5
- package/dist/hooks.js.map +1 -1
- package/dist/sign-in-with-atlas.d.ts +23 -0
- package/dist/sign-in-with-atlas.js +191 -51
- package/dist/sign-in-with-atlas.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlasauth/react changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.1
|
|
4
|
+
- `useAuth()` now also returns `status` (`'loading' | 'signed_in' | 'signed_out'`) and `session`,
|
|
5
|
+
the same names `useAtlas()` uses, so code that destructures them no longer gets `undefined`.
|
|
6
|
+
`isLoaded` / `isSignedIn` are unchanged.
|
|
7
|
+
- `useAuth()` has an exported return type, `UseAuthReturn`; annotate with it and TypeScript
|
|
8
|
+
rejects fields that don't exist.
|
|
9
|
+
|
|
3
10
|
## 0.2.0
|
|
4
11
|
- **New: `<SignInWithAtlasButton>` + `completeSignInWithAtlas()`** — "Sign in with Atlas" for any
|
|
5
12
|
website via OIDC authorization-code + PKCE against `https://atlasauth.net`. Standalone: no
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type CheckSessionOptions, type ProviderToken } from '@atlasauth/js';
|
|
2
|
+
import { useAtlas, type AuthStatus } from './AtlasProvider';
|
|
2
3
|
import { type ProtectCondition } from './protect';
|
|
3
4
|
import type { AtlasOrganizationMembership, AtlasSession, AtlasSessionResource, AtlasUser } from './types';
|
|
4
5
|
/**
|
|
@@ -41,21 +42,38 @@ export declare function useSessionList(): {
|
|
|
41
42
|
};
|
|
42
43
|
}): Promise<void>;
|
|
43
44
|
};
|
|
44
|
-
|
|
45
|
+
/**
|
|
46
|
+
* What `useAuth()` returns. Exported so a caller can annotate
|
|
47
|
+
* (`const auth: UseAuthReturn = useAuth()`) and have TypeScript reject a field
|
|
48
|
+
* that does not exist instead of handing back `undefined` at runtime.
|
|
49
|
+
*/
|
|
50
|
+
export interface UseAuthReturn {
|
|
51
|
+
/** `false` until the first session check finishes. */
|
|
45
52
|
isLoaded: boolean;
|
|
53
|
+
/** `true` only when `status === 'signed_in'`. */
|
|
46
54
|
isSignedIn: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* The same three-state status the provider tracks: `'loading'` while booting,
|
|
57
|
+
* then `'signed_in'` or `'signed_out'`. Equivalent to `isLoaded` + `isSignedIn`.
|
|
58
|
+
*/
|
|
59
|
+
status: AuthStatus;
|
|
60
|
+
/** The active session, or `null` while loading or signed out. */
|
|
61
|
+
session: AtlasSession | null;
|
|
47
62
|
userId: string | null;
|
|
48
63
|
sessionId: string | null;
|
|
49
64
|
orgId: string | null;
|
|
50
65
|
orgRole: string | null;
|
|
51
66
|
/** Always fresh: refreshes first if the cached token is close to expiry. */
|
|
52
|
-
getToken
|
|
67
|
+
getToken(): Promise<string | null>;
|
|
53
68
|
/** §6.6 the user's own live access token at a connected social provider. */
|
|
54
|
-
getProviderToken
|
|
55
|
-
signOut
|
|
69
|
+
getProviderToken(provider: string): Promise<ProviderToken | null>;
|
|
70
|
+
signOut(): Promise<void>;
|
|
56
71
|
/** Mirrors <Protect>, for logic that is not a render decision. */
|
|
57
|
-
has
|
|
58
|
-
}
|
|
72
|
+
has(condition: ProtectCondition): boolean;
|
|
73
|
+
}
|
|
74
|
+
/** Pure projection of the provider context onto the `useAuth()` shape. */
|
|
75
|
+
export declare function authFromContext(ctx: Pick<ReturnType<typeof useAtlas>, 'status' | 'session' | 'claims' | 'getToken' | 'getProviderToken' | 'signOut'>): UseAuthReturn;
|
|
76
|
+
export declare function useAuth(): UseAuthReturn;
|
|
59
77
|
export declare function useOrganization(): {
|
|
60
78
|
isLoaded: boolean;
|
|
61
79
|
organization: AtlasOrganizationMembership['organization'] | null;
|
package/dist/hooks.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useUser = useUser;
|
|
4
4
|
exports.useSession = useSession;
|
|
5
5
|
exports.useSessionList = useSessionList;
|
|
6
|
+
exports.authFromContext = authFromContext;
|
|
6
7
|
exports.useAuth = useAuth;
|
|
7
8
|
exports.useOrganization = useOrganization;
|
|
8
9
|
exports.useSilentAuth = useSilentAuth;
|
|
@@ -46,24 +47,27 @@ function useSessionList() {
|
|
|
46
47
|
setActive: ({ session }) => setActiveSession(session),
|
|
47
48
|
};
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
/** Pure projection of the provider context onto the `useAuth()` shape. */
|
|
51
|
+
function authFromContext(ctx) {
|
|
52
|
+
const { status, session, claims, getToken, getProviderToken, signOut } = ctx;
|
|
51
53
|
return {
|
|
52
54
|
isLoaded: status !== 'loading',
|
|
53
55
|
isSignedIn: status === 'signed_in',
|
|
56
|
+
status,
|
|
57
|
+
session,
|
|
54
58
|
userId: claims?.sub ?? null,
|
|
55
59
|
sessionId: claims?.sid ?? null,
|
|
56
60
|
orgId: claims?.org_id ?? null,
|
|
57
61
|
orgRole: claims?.org_role ?? null,
|
|
58
|
-
/** Always fresh: refreshes first if the cached token is close to expiry. */
|
|
59
62
|
getToken,
|
|
60
|
-
/** §6.6 the user's own live access token at a connected social provider. */
|
|
61
63
|
getProviderToken,
|
|
62
64
|
signOut,
|
|
63
|
-
/** Mirrors <Protect>, for logic that is not a render decision. */
|
|
64
65
|
has: (condition) => (0, protect_1.evaluate)(claims, condition).allowed,
|
|
65
66
|
};
|
|
66
67
|
}
|
|
68
|
+
function useAuth() {
|
|
69
|
+
return authFromContext((0, AtlasProvider_1.useAtlas)());
|
|
70
|
+
}
|
|
67
71
|
function useOrganization() {
|
|
68
72
|
const { status, claims, memberships, setActiveOrganization } = (0, AtlasProvider_1.useAtlas)();
|
|
69
73
|
const active = memberships.find((m) => m.organization.id === claims?.org_id) ?? null;
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;AAeA,0BAmBC;AAED,gCAGC;AASD,wCAWC;AAED,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ export interface AtlasIdOptions {
|
|
|
6
6
|
scope?: string;
|
|
7
7
|
}
|
|
8
8
|
export interface AtlasIdResult {
|
|
9
|
+
/** The ID token (same as idToken) — GSI-style name for what to send to your server. */
|
|
10
|
+
credential: string;
|
|
9
11
|
idToken: string;
|
|
10
12
|
accessToken: string;
|
|
11
13
|
refreshToken?: string;
|
|
@@ -24,7 +26,28 @@ export declare function completeSignInWithAtlas(opts?: {
|
|
|
24
26
|
url?: string;
|
|
25
27
|
fetch?: typeof fetch;
|
|
26
28
|
}): Promise<AtlasIdResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Popup sign-in, like Google's popup mode: no full-page redirect and no callback
|
|
31
|
+
* page. Call it from a click handler (or the browser blocks the popup). Atlas
|
|
32
|
+
* posts the result back to this window (response_mode=web_message), and the
|
|
33
|
+
* code is exchanged here with PKCE — no client secret. Needs a Browser-only
|
|
34
|
+
* (PKCE) app whose redirect URI is on this site's origin.
|
|
35
|
+
*
|
|
36
|
+
* Rejects with `popup_closed` if the user closes the popup, or with the OP's
|
|
37
|
+
* error (e.g. `access_denied`). A blocked popup falls back to the full-page
|
|
38
|
+
* redirect (finish it with completeSignInWithAtlas on the redirect page).
|
|
39
|
+
*/
|
|
40
|
+
export declare function signInWithAtlasPopup(opts: AtlasIdOptions & {
|
|
41
|
+
fetch?: typeof fetch;
|
|
42
|
+
}): Promise<AtlasIdResult>;
|
|
27
43
|
interface ButtonLook {
|
|
44
|
+
/**
|
|
45
|
+
* `redirect` (default) sends the whole page to Atlas. `popup` signs in inside
|
|
46
|
+
* a popup and calls onSuccess with the result — no redirect, no callback page.
|
|
47
|
+
*/
|
|
48
|
+
uxMode?: 'redirect' | 'popup';
|
|
49
|
+
/** Popup mode: called with { credential, claims, ... } when sign-in completes. */
|
|
50
|
+
onSuccess?: (result: AtlasIdResult) => void;
|
|
28
51
|
theme?: 'dark' | 'light' | 'outline';
|
|
29
52
|
size?: 'large' | 'medium' | 'small';
|
|
30
53
|
shape?: 'rect' | 'pill';
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildAtlasAuthorizeUrl = buildAtlasAuthorizeUrl;
|
|
4
4
|
exports.completeSignInWithAtlas = completeSignInWithAtlas;
|
|
5
|
+
exports.signInWithAtlasPopup = signInWithAtlasPopup;
|
|
5
6
|
exports.SignInWithAtlasButton = SignInWithAtlasButton;
|
|
6
7
|
const react_1 = require("react");
|
|
7
8
|
const DEFAULT_ISSUER = 'https://atlasauth.net';
|
|
@@ -14,35 +15,45 @@ function b64url(bytes) {
|
|
|
14
15
|
function randomToken() {
|
|
15
16
|
return b64url(crypto.getRandomValues(new Uint8Array(32)));
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
/** Writes the transaction synchronously, so a popup opened right after gets a copy. */
|
|
19
|
+
function begin(opts, mode) {
|
|
18
20
|
if (!opts.clientId)
|
|
19
21
|
throw new Error('clientId is required');
|
|
20
22
|
if (!opts.redirectUri)
|
|
21
23
|
throw new Error('redirectUri is required');
|
|
22
24
|
const issuer = (opts.issuer ?? DEFAULT_ISSUER).replace(/\/+$/, '');
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
sessionStorage.setItem(`atlasid:${state}`, JSON.stringify({
|
|
28
|
-
state,
|
|
29
|
-
nonce,
|
|
30
|
-
verifier,
|
|
25
|
+
const tx = {
|
|
26
|
+
state: randomToken(),
|
|
27
|
+
nonce: randomToken(),
|
|
28
|
+
verifier: randomToken(),
|
|
31
29
|
redirectUri: opts.redirectUri,
|
|
32
30
|
clientId: opts.clientId,
|
|
33
31
|
issuer,
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
};
|
|
33
|
+
if (mode === 'popup')
|
|
34
|
+
tx.popup = true;
|
|
35
|
+
sessionStorage.setItem(`atlasid:${tx.state}`, JSON.stringify(tx));
|
|
36
|
+
const url = crypto.subtle
|
|
37
|
+
.digest('SHA-256', new TextEncoder().encode(tx.verifier))
|
|
38
|
+
.then((digest) => {
|
|
39
|
+
const params = new URLSearchParams({
|
|
40
|
+
response_type: 'code',
|
|
41
|
+
client_id: opts.clientId,
|
|
42
|
+
redirect_uri: opts.redirectUri,
|
|
43
|
+
scope: opts.scope ?? 'openid profile email',
|
|
44
|
+
state: tx.state,
|
|
45
|
+
nonce: tx.nonce,
|
|
46
|
+
code_challenge: b64url(new Uint8Array(digest)),
|
|
47
|
+
code_challenge_method: 'S256',
|
|
48
|
+
});
|
|
49
|
+
if (mode === 'popup')
|
|
50
|
+
params.set('response_mode', 'web_message');
|
|
51
|
+
return `${issuer}/oauth2/authorize?${params.toString()}`;
|
|
44
52
|
});
|
|
45
|
-
return
|
|
53
|
+
return { tx, url };
|
|
54
|
+
}
|
|
55
|
+
async function buildAtlasAuthorizeUrl(opts) {
|
|
56
|
+
return begin(opts, 'redirect').url;
|
|
46
57
|
}
|
|
47
58
|
function decodeClaims(jwt) {
|
|
48
59
|
const part = jwt.split('.')[1];
|
|
@@ -60,28 +71,9 @@ function isTransaction(v) {
|
|
|
60
71
|
const rec = v;
|
|
61
72
|
return TX_KEYS.every((k) => typeof rec[k] === 'string' && rec[k] !== '');
|
|
62
73
|
}
|
|
63
|
-
|
|
64
|
-
* Finishes sign-in on the redirect page. Mirrors the hosted script's
|
|
65
|
-
* `AtlasID.handleCallback()` check for check and error code for error code:
|
|
66
|
-
* invalid_url, the callback's own error, state_mismatch, missing_code,
|
|
67
|
-
* token_exchange_failed (or the token endpoint's error), invalid_id_token,
|
|
68
|
-
* nonce_mismatch.
|
|
69
|
-
*/
|
|
70
|
-
async function completeSignInWithAtlas(opts = {}) {
|
|
71
|
-
let q;
|
|
72
|
-
try {
|
|
73
|
-
q = new URL(opts.url ?? window.location.href).searchParams;
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
throw new Error('invalid_url');
|
|
77
|
-
}
|
|
78
|
-
const err = q.get('error');
|
|
79
|
-
if (err)
|
|
80
|
-
throw new Error(q.get('error_description') || err);
|
|
81
|
-
const state = q.get('state');
|
|
82
|
-
const code = q.get('code');
|
|
74
|
+
function takeTransaction(state) {
|
|
83
75
|
// One-shot: the entry is removed the moment it is read. Blocked storage
|
|
84
|
-
// (privacy modes, sandboxed frames)
|
|
76
|
+
// (privacy modes, sandboxed frames) reads as missing, never a raw throw.
|
|
85
77
|
let raw = null;
|
|
86
78
|
try {
|
|
87
79
|
raw = state ? sessionStorage.getItem(`atlasid:${state}`) : null;
|
|
@@ -89,22 +81,19 @@ async function completeSignInWithAtlas(opts = {}) {
|
|
|
89
81
|
sessionStorage.removeItem(`atlasid:${state}`);
|
|
90
82
|
}
|
|
91
83
|
catch {
|
|
92
|
-
|
|
84
|
+
return null;
|
|
93
85
|
}
|
|
94
86
|
if (!raw)
|
|
95
|
-
|
|
96
|
-
let tx;
|
|
87
|
+
return null;
|
|
97
88
|
try {
|
|
98
|
-
tx = JSON.parse(raw);
|
|
89
|
+
const tx = JSON.parse(raw);
|
|
90
|
+
return isTransaction(tx) ? tx : null;
|
|
99
91
|
}
|
|
100
92
|
catch {
|
|
101
|
-
|
|
93
|
+
return null;
|
|
102
94
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (!code)
|
|
106
|
-
throw new Error('missing_code');
|
|
107
|
-
const doFetch = opts.fetch ?? fetch;
|
|
95
|
+
}
|
|
96
|
+
async function exchangeCode(tx, code, doFetch) {
|
|
108
97
|
const res = await doFetch(`${tx.issuer}/oauth2/token`, {
|
|
109
98
|
method: 'POST',
|
|
110
99
|
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
@@ -141,6 +130,7 @@ async function completeSignInWithAtlas(opts = {}) {
|
|
|
141
130
|
if (claims.iss !== tx.issuer || !aud.includes(tx.clientId))
|
|
142
131
|
throw new Error('invalid_id_token');
|
|
143
132
|
return {
|
|
133
|
+
credential: tok.id_token,
|
|
144
134
|
idToken: tok.id_token,
|
|
145
135
|
accessToken: tok.access_token,
|
|
146
136
|
refreshToken: tok.refresh_token,
|
|
@@ -148,6 +138,145 @@ async function completeSignInWithAtlas(opts = {}) {
|
|
|
148
138
|
claims,
|
|
149
139
|
};
|
|
150
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Finishes sign-in on the redirect page. Mirrors the hosted script's
|
|
143
|
+
* `AtlasID.handleCallback()` check for check and error code for error code:
|
|
144
|
+
* invalid_url, the callback's own error, state_mismatch, missing_code,
|
|
145
|
+
* token_exchange_failed (or the token endpoint's error), invalid_id_token,
|
|
146
|
+
* nonce_mismatch.
|
|
147
|
+
*/
|
|
148
|
+
async function completeSignInWithAtlas(opts = {}) {
|
|
149
|
+
let q;
|
|
150
|
+
try {
|
|
151
|
+
q = new URL(opts.url ?? window.location.href).searchParams;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
throw new Error('invalid_url');
|
|
155
|
+
}
|
|
156
|
+
const err = q.get('error');
|
|
157
|
+
if (err)
|
|
158
|
+
throw new Error(q.get('error_description') || err);
|
|
159
|
+
const tx = takeTransaction(q.get('state'));
|
|
160
|
+
if (!tx)
|
|
161
|
+
throw new Error('state_mismatch');
|
|
162
|
+
const code = q.get('code');
|
|
163
|
+
if (!code)
|
|
164
|
+
throw new Error('missing_code');
|
|
165
|
+
return exchangeCode(tx, code, opts.fetch ?? fetch);
|
|
166
|
+
}
|
|
167
|
+
function centeredPopupFeatures(w, h) {
|
|
168
|
+
const x = (window.screenX || 0) + Math.max(0, ((window.outerWidth || w) - w) / 2);
|
|
169
|
+
const y = (window.screenY || 0) + Math.max(0, ((window.outerHeight || h) - h) / 2);
|
|
170
|
+
return `popup=yes,width=${w},height=${h},left=${Math.round(x)},top=${Math.round(y)}`;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Popup sign-in, like Google's popup mode: no full-page redirect and no callback
|
|
174
|
+
* page. Call it from a click handler (or the browser blocks the popup). Atlas
|
|
175
|
+
* posts the result back to this window (response_mode=web_message), and the
|
|
176
|
+
* code is exchanged here with PKCE — no client secret. Needs a Browser-only
|
|
177
|
+
* (PKCE) app whose redirect URI is on this site's origin.
|
|
178
|
+
*
|
|
179
|
+
* Rejects with `popup_closed` if the user closes the popup, or with the OP's
|
|
180
|
+
* error (e.g. `access_denied`). A blocked popup falls back to the full-page
|
|
181
|
+
* redirect (finish it with completeSignInWithAtlas on the redirect page).
|
|
182
|
+
*/
|
|
183
|
+
function signInWithAtlasPopup(opts) {
|
|
184
|
+
let begun;
|
|
185
|
+
try {
|
|
186
|
+
begun = begin(opts, 'popup');
|
|
187
|
+
}
|
|
188
|
+
catch (e) {
|
|
189
|
+
return Promise.reject(e);
|
|
190
|
+
}
|
|
191
|
+
const { tx } = begun;
|
|
192
|
+
let popup = null;
|
|
193
|
+
try {
|
|
194
|
+
popup = window.open('', 'atlasid_signin', centeredPopupFeatures(480, 640));
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
popup = null;
|
|
198
|
+
}
|
|
199
|
+
if (!popup) {
|
|
200
|
+
takeTransaction(tx.state);
|
|
201
|
+
return buildAtlasAuthorizeUrl(opts).then((u) => {
|
|
202
|
+
window.location.assign(u);
|
|
203
|
+
return new Promise(() => { });
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
const win = popup;
|
|
207
|
+
return new Promise((resolve, reject) => {
|
|
208
|
+
let done = false;
|
|
209
|
+
let timer = null;
|
|
210
|
+
const finish = (err, result) => {
|
|
211
|
+
if (done)
|
|
212
|
+
return;
|
|
213
|
+
done = true;
|
|
214
|
+
window.removeEventListener('message', onMessage);
|
|
215
|
+
if (timer)
|
|
216
|
+
clearInterval(timer);
|
|
217
|
+
if (err)
|
|
218
|
+
reject(err);
|
|
219
|
+
else
|
|
220
|
+
resolve(result);
|
|
221
|
+
};
|
|
222
|
+
function onMessage(ev) {
|
|
223
|
+
if (ev.source !== win || ev.origin !== tx.issuer)
|
|
224
|
+
return;
|
|
225
|
+
const d = ev.data;
|
|
226
|
+
if (!d || d.type !== 'atlasid:authorization_response' || !d.response)
|
|
227
|
+
return;
|
|
228
|
+
if (d.response.state !== tx.state)
|
|
229
|
+
return;
|
|
230
|
+
try {
|
|
231
|
+
win.close();
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
/* ignore */
|
|
235
|
+
}
|
|
236
|
+
const stored = takeTransaction(tx.state);
|
|
237
|
+
if (!stored)
|
|
238
|
+
return finish(new Error('state_mismatch'));
|
|
239
|
+
if (d.response.error)
|
|
240
|
+
return finish(new Error(d.response.error_description || d.response.error));
|
|
241
|
+
if (!d.response.code)
|
|
242
|
+
return finish(new Error('missing_code'));
|
|
243
|
+
exchangeCode(stored, d.response.code, opts.fetch ?? fetch).then((r) => finish(null, r), (e) => finish(e));
|
|
244
|
+
}
|
|
245
|
+
window.addEventListener('message', onMessage);
|
|
246
|
+
timer = setInterval(() => {
|
|
247
|
+
let closed = true;
|
|
248
|
+
try {
|
|
249
|
+
closed = win.closed;
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
/* treat as closed */
|
|
253
|
+
}
|
|
254
|
+
if (closed) {
|
|
255
|
+
if (timer)
|
|
256
|
+
clearInterval(timer);
|
|
257
|
+
timer = null;
|
|
258
|
+
// Grace period: a message posted just before close is still delivered.
|
|
259
|
+
setTimeout(() => finish(new Error('popup_closed')), 600);
|
|
260
|
+
}
|
|
261
|
+
}, 400);
|
|
262
|
+
begun.url.then((u) => {
|
|
263
|
+
try {
|
|
264
|
+
win.location.href = u;
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
finish(new Error('popup_failed'));
|
|
268
|
+
}
|
|
269
|
+
}, (e) => {
|
|
270
|
+
try {
|
|
271
|
+
win.close();
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
/* ignore */
|
|
275
|
+
}
|
|
276
|
+
finish(e);
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
}
|
|
151
280
|
/**
|
|
152
281
|
* The hosted script's `data-login-uri` check: an https URL or a same-origin
|
|
153
282
|
* path (not "//" or "/\"), with no control or whitespace characters. Returns
|
|
@@ -223,6 +352,17 @@ function SignInWithAtlasButton(props) {
|
|
|
223
352
|
fail(new Error('loginUri must be an https URL or a same-origin path'));
|
|
224
353
|
return;
|
|
225
354
|
}
|
|
355
|
+
if (props.uxMode === 'popup') {
|
|
356
|
+
signInWithAtlasPopup(props)
|
|
357
|
+
.then((r) => props.onSuccess?.(r))
|
|
358
|
+
.catch((e) => {
|
|
359
|
+
// Closing the popup is a normal cancel, not an error to log.
|
|
360
|
+
if (e?.message === 'popup_closed' && !props.onError)
|
|
361
|
+
return;
|
|
362
|
+
fail(e);
|
|
363
|
+
});
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
226
366
|
buildAtlasAuthorizeUrl(props)
|
|
227
367
|
.then((u) => window.location.assign(u))
|
|
228
368
|
.catch(fail);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-in-with-atlas.js","sourceRoot":"","sources":["../src/sign-in-with-atlas.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sign-in-with-atlas.js","sourceRoot":"","sources":["../src/sign-in-with-atlas.tsx"],"names":[],"mappings":"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"}
|