react-native-nitro-auth 0.5.6 → 0.5.7
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 +8 -2
- package/android/src/main/cpp/PlatformAuth+Android.cpp +1 -1
- package/android/src/main/java/com/auth/AuthAdapter.kt +43 -21
- package/ios/AuthAdapter.swift +43 -14
- package/ios/PlatformAuth+iOS.mm +20 -1
- package/lib/commonjs/service.js +21 -17
- package/lib/commonjs/service.js.map +1 -1
- package/lib/commonjs/use-auth.js +26 -10
- package/lib/commonjs/use-auth.js.map +1 -1
- package/lib/commonjs/utils/auth-error.js +1 -1
- package/lib/commonjs/utils/auth-error.js.map +1 -1
- package/lib/module/service.js +21 -17
- package/lib/module/service.js.map +1 -1
- package/lib/module/use-auth.js +26 -10
- package/lib/module/use-auth.js.map +1 -1
- package/lib/module/utils/auth-error.js +1 -1
- package/lib/module/utils/auth-error.js.map +1 -1
- package/lib/typescript/commonjs/Auth.nitro.d.ts +2 -2
- package/lib/typescript/commonjs/Auth.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/service.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-auth.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/auth-error.d.ts.map +1 -1
- package/lib/typescript/module/Auth.nitro.d.ts +2 -2
- package/lib/typescript/module/Auth.nitro.d.ts.map +1 -1
- package/lib/typescript/module/service.d.ts.map +1 -1
- package/lib/typescript/module/use-auth.d.ts.map +1 -1
- package/lib/typescript/module/utils/auth-error.d.ts.map +1 -1
- package/nitro.json +4 -1
- package/nitrogen/generated/ios/NitroAuth+autolinking.rb +2 -0
- package/package.json +4 -3
- package/src/Auth.nitro.ts +3 -1
- package/src/service.ts +22 -17
- package/src/use-auth.ts +35 -6
- package/src/utils/auth-error.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AUTH_ERROR_CODES","Set","isAuthErrorCode","value","has","toAuthErrorCode","raw","AuthError","Error","constructor","message","String","code","name","underlyingMessage","undefined","from","e","exports"],"sourceRoot":"../../../src","sources":["utils/auth-error.ts"],"mappings":";;;;;;;;AAEA,MAAMA,gBAAqC,GAAG,IAAIC,GAAG,CAAgB,CACnE,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,CACV,CAAC;AAEK,SAASC,eAAeA,CAACC,KAAa,EAA0B;EACrE,OAAOH,gBAAgB,CAACI,GAAG,CAACD,KAAK,CAAC;AACpC;AAEO,SAASE,eAAeA,CAACC,GAAW,EAAiB;EAC1D,OAAOJ,eAAe,CAACI,GAAG,CAAC,GAAGA,GAAG,GAAG,SAAS;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACH,GAAY,EAAE;IACxB,MAAMI,OAAO,GAAGJ,GAAG,YAAYE,KAAK,GAAGF,GAAG,CAACI,OAAO,GAAGC,MAAM,CAACL,GAAG,CAAC;IAChE,MAAMM,IAAI,GAAGP,eAAe,CAACK,OAAO,CAAC;IACrC,KAAK,CAACE,IAAI,CAAC;IACX,IAAI,CAACC,IAAI,GAAG,WAAW;IACvB,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,iBAAiB,GAAGF,IAAI,KAAKF,OAAO,GAAGA,OAAO,GAAGK,SAAS;EACjE;EAEA,OAAOC,IAAIA,CAACC,CAAU,EAAa;IACjC,OAAOA,CAAC,YAAYV,SAAS,GAAGU,CAAC,GAAG,IAAIV,SAAS,CAACU,CAAC,CAAC;EACtD;AACF;AAACC,OAAA,CAAAX,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AUTH_ERROR_CODES","Set","isAuthErrorCode","value","has","toAuthErrorCode","raw","AuthError","Error","constructor","message","String","code","name","underlyingMessage","undefined","from","e","exports"],"sourceRoot":"../../../src","sources":["utils/auth-error.ts"],"mappings":";;;;;;;;AAEA,MAAMA,gBAAqC,GAAG,IAAIC,GAAG,CAAgB,CACnE,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,CACV,CAAC;AAEK,SAASC,eAAeA,CAACC,KAAa,EAA0B;EACrE,OAAOH,gBAAgB,CAACI,GAAG,CAACD,KAAK,CAAC;AACpC;AAEO,SAASE,eAAeA,CAACC,GAAW,EAAiB;EAC1D,OAAOJ,eAAe,CAACI,GAAG,CAAC,GAAGA,GAAG,GAAG,SAAS;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACH,GAAY,EAAE;IACxB,MAAMI,OAAO,GAAGJ,GAAG,YAAYE,KAAK,GAAGF,GAAG,CAACI,OAAO,GAAGC,MAAM,CAACL,GAAG,CAAC;IAChE,MAAMM,IAAI,GAAGP,eAAe,CAACK,OAAO,CAAC;IACrC,KAAK,CAACE,IAAI,CAAC;IACX,IAAI,CAACC,IAAI,GAAG,WAAW;IACvB,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,iBAAiB,GAAGF,IAAI,KAAKF,OAAO,GAAGA,OAAO,GAAGK,SAAS;EACjE;EAEA,OAAOC,IAAIA,CAACC,CAAU,EAAa;IACjC,OAAOA,CAAC,YAAYV,SAAS,GAAGU,CAAC,GAAG,IAAIV,SAAS,CAACU,CAAC,CAAC;EACtD;AACF;AAACC,OAAA,CAAAX,SAAA,GAAAA,SAAA","ignoreList":[]}
|
package/lib/module/service.js
CHANGED
|
@@ -2,23 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
import { NitroModules } from "react-native-nitro-modules";
|
|
4
4
|
import { AuthError } from "./utils/auth-error.js";
|
|
5
|
-
|
|
5
|
+
let nitroAuth;
|
|
6
|
+
function getNitroAuth() {
|
|
7
|
+
nitroAuth ??= NitroModules.createHybridObject("Auth");
|
|
8
|
+
return nitroAuth;
|
|
9
|
+
}
|
|
6
10
|
export const AuthService = {
|
|
7
11
|
get name() {
|
|
8
|
-
return
|
|
12
|
+
return getNitroAuth().name;
|
|
9
13
|
},
|
|
10
14
|
get currentUser() {
|
|
11
|
-
return
|
|
15
|
+
return getNitroAuth().currentUser;
|
|
12
16
|
},
|
|
13
17
|
get grantedScopes() {
|
|
14
|
-
return
|
|
18
|
+
return getNitroAuth().grantedScopes;
|
|
15
19
|
},
|
|
16
20
|
get hasPlayServices() {
|
|
17
|
-
return
|
|
21
|
+
return getNitroAuth().hasPlayServices;
|
|
18
22
|
},
|
|
19
23
|
async login(provider, options) {
|
|
20
24
|
try {
|
|
21
|
-
await
|
|
25
|
+
await getNitroAuth().login(provider, options);
|
|
22
26
|
return;
|
|
23
27
|
} catch (e) {
|
|
24
28
|
throw AuthError.from(e);
|
|
@@ -26,7 +30,7 @@ export const AuthService = {
|
|
|
26
30
|
},
|
|
27
31
|
async requestScopes(scopes) {
|
|
28
32
|
try {
|
|
29
|
-
await
|
|
33
|
+
await getNitroAuth().requestScopes(scopes);
|
|
30
34
|
return;
|
|
31
35
|
} catch (e) {
|
|
32
36
|
throw AuthError.from(e);
|
|
@@ -34,7 +38,7 @@ export const AuthService = {
|
|
|
34
38
|
},
|
|
35
39
|
async revokeScopes(scopes) {
|
|
36
40
|
try {
|
|
37
|
-
await
|
|
41
|
+
await getNitroAuth().revokeScopes(scopes);
|
|
38
42
|
return;
|
|
39
43
|
} catch (e) {
|
|
40
44
|
throw AuthError.from(e);
|
|
@@ -42,43 +46,43 @@ export const AuthService = {
|
|
|
42
46
|
},
|
|
43
47
|
async getAccessToken() {
|
|
44
48
|
try {
|
|
45
|
-
return await
|
|
49
|
+
return await getNitroAuth().getAccessToken();
|
|
46
50
|
} catch (e) {
|
|
47
51
|
throw AuthError.from(e);
|
|
48
52
|
}
|
|
49
53
|
},
|
|
50
54
|
async refreshToken() {
|
|
51
55
|
try {
|
|
52
|
-
return await
|
|
56
|
+
return await getNitroAuth().refreshToken();
|
|
53
57
|
} catch (e) {
|
|
54
58
|
throw AuthError.from(e);
|
|
55
59
|
}
|
|
56
60
|
},
|
|
57
61
|
logout() {
|
|
58
|
-
|
|
62
|
+
getNitroAuth().logout();
|
|
59
63
|
},
|
|
60
64
|
async silentRestore() {
|
|
61
65
|
try {
|
|
62
|
-
await
|
|
66
|
+
await getNitroAuth().silentRestore();
|
|
63
67
|
return;
|
|
64
68
|
} catch (e) {
|
|
65
69
|
throw AuthError.from(e);
|
|
66
70
|
}
|
|
67
71
|
},
|
|
68
72
|
onAuthStateChanged(callback) {
|
|
69
|
-
return
|
|
73
|
+
return getNitroAuth().onAuthStateChanged(callback);
|
|
70
74
|
},
|
|
71
75
|
onTokensRefreshed(callback) {
|
|
72
|
-
return
|
|
76
|
+
return getNitroAuth().onTokensRefreshed(callback);
|
|
73
77
|
},
|
|
74
78
|
setLoggingEnabled(enabled) {
|
|
75
|
-
|
|
79
|
+
getNitroAuth().setLoggingEnabled(enabled);
|
|
76
80
|
},
|
|
77
81
|
dispose() {
|
|
78
|
-
|
|
82
|
+
getNitroAuth().dispose();
|
|
79
83
|
},
|
|
80
84
|
equals(other) {
|
|
81
|
-
return
|
|
85
|
+
return getNitroAuth().equals(other);
|
|
82
86
|
}
|
|
83
87
|
};
|
|
84
88
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","AuthError","nitroAuth","createHybridObject","AuthService","name","currentUser","grantedScopes","hasPlayServices","login","provider","options","e","from","requestScopes","scopes","revokeScopes","getAccessToken","refreshToken","logout","silentRestore","onAuthStateChanged","callback","onTokensRefreshed","setLoggingEnabled","enabled","dispose","equals","other"],"sourceRoot":"../../src","sources":["service.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAQzD,SAASC,SAAS,QAAQ,uBAAoB;AAE9C,
|
|
1
|
+
{"version":3,"names":["NitroModules","AuthError","nitroAuth","getNitroAuth","createHybridObject","AuthService","name","currentUser","grantedScopes","hasPlayServices","login","provider","options","e","from","requestScopes","scopes","revokeScopes","getAccessToken","refreshToken","logout","silentRestore","onAuthStateChanged","callback","onTokensRefreshed","setLoggingEnabled","enabled","dispose","equals","other"],"sourceRoot":"../../src","sources":["service.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/use-auth.js
CHANGED
|
@@ -3,14 +3,25 @@
|
|
|
3
3
|
import { useState, useEffect, useCallback, useMemo } from "react";
|
|
4
4
|
import { AuthService } from "./service";
|
|
5
5
|
import { AuthError } from "./utils/auth-error.js";
|
|
6
|
+
const EMPTY_SCOPES = [];
|
|
6
7
|
const areScopesEqual = (left, right) => {
|
|
8
|
+
if (left === right) return true;
|
|
7
9
|
if (left.length !== right.length) return false;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
let matchesInOrder = true;
|
|
11
|
+
for (let i = 0; i < left.length; i += 1) {
|
|
12
|
+
if (left[i] !== right[i]) {
|
|
13
|
+
matchesInOrder = false;
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (matchesInOrder) return true;
|
|
18
|
+
const remaining = new Set(left);
|
|
19
|
+
for (const scope of right) {
|
|
20
|
+
if (!remaining.delete(scope)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
12
23
|
}
|
|
13
|
-
return
|
|
24
|
+
return remaining.size === 0;
|
|
14
25
|
};
|
|
15
26
|
export function useAuth() {
|
|
16
27
|
const [state, setState] = useState({
|
|
@@ -55,11 +66,16 @@ export function useAuth() {
|
|
|
55
66
|
}, [syncStateFromService]);
|
|
56
67
|
const logout = useCallback(() => {
|
|
57
68
|
AuthService.logout();
|
|
58
|
-
setState({
|
|
59
|
-
user
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
setState(prev => {
|
|
70
|
+
if (prev.user === undefined && prev.scopes.length === 0 && prev.loading === false && prev.error === undefined) {
|
|
71
|
+
return prev;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
user: undefined,
|
|
75
|
+
scopes: EMPTY_SCOPES,
|
|
76
|
+
loading: false,
|
|
77
|
+
error: undefined
|
|
78
|
+
};
|
|
63
79
|
});
|
|
64
80
|
}, []);
|
|
65
81
|
const requestScopes = useCallback(async newScopes => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useCallback","useMemo","AuthService","AuthError","areScopesEqual","left","right","length","
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useCallback","useMemo","AuthService","AuthError","EMPTY_SCOPES","areScopesEqual","left","right","length","matchesInOrder","i","remaining","Set","scope","delete","size","useAuth","state","setState","user","currentUser","scopes","grantedScopes","loading","error","undefined","syncStateFromService","nextLoading","nextError","nextUser","nextScopes","prev","login","provider","options","e","from","logout","requestScopes","newScopes","revokeScopes","scopesToRevoke","getAccessToken","refreshToken","tokens","silentRestore","unsubscribeAuth","onAuthStateChanged","unsubscribeTokens","onTokensRefreshed","hasPlayServices"],"sourceRoot":"../../src","sources":["use-auth.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const AUTH_ERROR_CODES = new Set(["cancelled", "timeout", "popup_blocked", "network_error", "configuration_error", "unsupported_provider", "invalid_state", "invalid_nonce", "token_error", "no_id_token", "parse_error", "refresh_failed", "unknown"]);
|
|
3
|
+
const AUTH_ERROR_CODES = new Set(["cancelled", "timeout", "popup_blocked", "network_error", "configuration_error", "not_signed_in", "operation_in_progress", "unsupported_provider", "invalid_state", "invalid_nonce", "token_error", "no_id_token", "parse_error", "refresh_failed", "unknown"]);
|
|
4
4
|
export function isAuthErrorCode(value) {
|
|
5
5
|
return AUTH_ERROR_CODES.has(value);
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AUTH_ERROR_CODES","Set","isAuthErrorCode","value","has","toAuthErrorCode","raw","AuthError","Error","constructor","message","String","code","name","underlyingMessage","undefined","from","e"],"sourceRoot":"../../../src","sources":["utils/auth-error.ts"],"mappings":";;AAEA,MAAMA,gBAAqC,GAAG,IAAIC,GAAG,CAAgB,CACnE,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,CACV,CAAC;AAEF,OAAO,SAASC,eAAeA,CAACC,KAAa,EAA0B;EACrE,OAAOH,gBAAgB,CAACI,GAAG,CAACD,KAAK,CAAC;AACpC;AAEA,OAAO,SAASE,eAAeA,CAACC,GAAW,EAAiB;EAC1D,OAAOJ,eAAe,CAACI,GAAG,CAAC,GAAGA,GAAG,GAAG,SAAS;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,SAAS,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACH,GAAY,EAAE;IACxB,MAAMI,OAAO,GAAGJ,GAAG,YAAYE,KAAK,GAAGF,GAAG,CAACI,OAAO,GAAGC,MAAM,CAACL,GAAG,CAAC;IAChE,MAAMM,IAAI,GAAGP,eAAe,CAACK,OAAO,CAAC;IACrC,KAAK,CAACE,IAAI,CAAC;IACX,IAAI,CAACC,IAAI,GAAG,WAAW;IACvB,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,iBAAiB,GAAGF,IAAI,KAAKF,OAAO,GAAGA,OAAO,GAAGK,SAAS;EACjE;EAEA,OAAOC,IAAIA,CAACC,CAAU,EAAa;IACjC,OAAOA,CAAC,YAAYV,SAAS,GAAGU,CAAC,GAAG,IAAIV,SAAS,CAACU,CAAC,CAAC;EACtD;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AUTH_ERROR_CODES","Set","isAuthErrorCode","value","has","toAuthErrorCode","raw","AuthError","Error","constructor","message","String","code","name","underlyingMessage","undefined","from","e"],"sourceRoot":"../../../src","sources":["utils/auth-error.ts"],"mappings":";;AAEA,MAAMA,gBAAqC,GAAG,IAAIC,GAAG,CAAgB,CACnE,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,CACV,CAAC;AAEF,OAAO,SAASC,eAAeA,CAACC,KAAa,EAA0B;EACrE,OAAOH,gBAAgB,CAACI,GAAG,CAACD,KAAK,CAAC;AACpC;AAEA,OAAO,SAASE,eAAeA,CAACC,GAAW,EAAiB;EAC1D,OAAOJ,eAAe,CAACI,GAAG,CAAC,GAAGA,GAAG,GAAG,SAAS;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,SAAS,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACH,GAAY,EAAE;IACxB,MAAMI,OAAO,GAAGJ,GAAG,YAAYE,KAAK,GAAGF,GAAG,CAACI,OAAO,GAAGC,MAAM,CAACL,GAAG,CAAC;IAChE,MAAMM,IAAI,GAAGP,eAAe,CAACK,OAAO,CAAC;IACrC,KAAK,CAACE,IAAI,CAAC;IACX,IAAI,CAACC,IAAI,GAAG,WAAW;IACvB,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,iBAAiB,GAAGF,IAAI,KAAKF,OAAO,GAAGA,OAAO,GAAGK,SAAS;EACjE;EAEA,OAAOC,IAAIA,CAACC,CAAU,EAAa;IACjC,OAAOA,CAAC,YAAYV,SAAS,GAAGU,CAAC,GAAG,IAAIV,SAAS,CAACU,CAAC,CAAC;EACtD;AACF","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HybridObject } from "react-native-nitro-modules";
|
|
2
2
|
export type AuthProvider = "google" | "apple" | "microsoft";
|
|
3
|
-
export type AuthErrorCode = "cancelled" | "timeout" | "popup_blocked" | "network_error" | "configuration_error" | "unsupported_provider" | "invalid_state" | "invalid_nonce" | "token_error" | "no_id_token" | "parse_error" | "refresh_failed" | "unknown";
|
|
3
|
+
export type AuthErrorCode = "cancelled" | "timeout" | "popup_blocked" | "network_error" | "configuration_error" | "not_signed_in" | "operation_in_progress" | "unsupported_provider" | "invalid_state" | "invalid_nonce" | "token_error" | "no_id_token" | "parse_error" | "refresh_failed" | "unknown";
|
|
4
4
|
export type MicrosoftPrompt = "login" | "consent" | "select_account" | "none";
|
|
5
5
|
export interface LoginOptions {
|
|
6
6
|
scopes?: string[];
|
|
@@ -8,7 +8,7 @@ export interface LoginOptions {
|
|
|
8
8
|
useOneTap?: boolean;
|
|
9
9
|
/** (iOS only) Use native sign-in sheet */
|
|
10
10
|
useSheet?: boolean;
|
|
11
|
-
/** Force account picker to show, ignoring any cached session or loginHint */
|
|
11
|
+
/** Force account picker to show, ignoring any cached session or loginHint. On Android Google, this uses the legacy chooser path. */
|
|
12
12
|
forceAccountPicker?: boolean;
|
|
13
13
|
/** (Android only) Use legacy Google Sign-In flow (e.g. for serverAuthCode) */
|
|
14
14
|
useLegacyGoogleSignIn?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.nitro.d.ts","sourceRoot":"","sources":["../../../src/Auth.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;AAE5D,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,SAAS,GACT,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,sBAAsB,GACtB,eAAe,GACf,eAAe,GACf,aAAa,GACb,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"Auth.nitro.d.ts","sourceRoot":"","sources":["../../../src/Auth.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAUtB,eAAO,MAAM,WAAW,EAAE,IA4FzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../../src/use-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../../src/use-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;CAC9B,CAAC;AAwBF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IACtC,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,OAAO,IAAI,aAAa,CA+KvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../../../src/utils/auth-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../../../src/utils/auth-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAoBnD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAErE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAE1D;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEnC,GAAG,EAAE,OAAO;IASxB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS;CAGnC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HybridObject } from "react-native-nitro-modules";
|
|
2
2
|
export type AuthProvider = "google" | "apple" | "microsoft";
|
|
3
|
-
export type AuthErrorCode = "cancelled" | "timeout" | "popup_blocked" | "network_error" | "configuration_error" | "unsupported_provider" | "invalid_state" | "invalid_nonce" | "token_error" | "no_id_token" | "parse_error" | "refresh_failed" | "unknown";
|
|
3
|
+
export type AuthErrorCode = "cancelled" | "timeout" | "popup_blocked" | "network_error" | "configuration_error" | "not_signed_in" | "operation_in_progress" | "unsupported_provider" | "invalid_state" | "invalid_nonce" | "token_error" | "no_id_token" | "parse_error" | "refresh_failed" | "unknown";
|
|
4
4
|
export type MicrosoftPrompt = "login" | "consent" | "select_account" | "none";
|
|
5
5
|
export interface LoginOptions {
|
|
6
6
|
scopes?: string[];
|
|
@@ -8,7 +8,7 @@ export interface LoginOptions {
|
|
|
8
8
|
useOneTap?: boolean;
|
|
9
9
|
/** (iOS only) Use native sign-in sheet */
|
|
10
10
|
useSheet?: boolean;
|
|
11
|
-
/** Force account picker to show, ignoring any cached session or loginHint */
|
|
11
|
+
/** Force account picker to show, ignoring any cached session or loginHint. On Android Google, this uses the legacy chooser path. */
|
|
12
12
|
forceAccountPicker?: boolean;
|
|
13
13
|
/** (Android only) Use legacy Google Sign-In flow (e.g. for serverAuthCode) */
|
|
14
14
|
useLegacyGoogleSignIn?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.nitro.d.ts","sourceRoot":"","sources":["../../../src/Auth.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;AAE5D,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,SAAS,GACT,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,sBAAsB,GACtB,eAAe,GACf,eAAe,GACf,aAAa,GACb,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"Auth.nitro.d.ts","sourceRoot":"","sources":["../../../src/Auth.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAUtB,eAAO,MAAM,WAAW,EAAE,IA4FzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../../src/use-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../../src/use-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;CAC9B,CAAC;AAwBF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IACtC,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,OAAO,IAAI,aAAa,CA+KvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../../../src/utils/auth-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../../../src/utils/auth-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAoBnD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAErE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAE1D;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEnC,GAAG,EAAE,OAAO;IASxB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS;CAGnC"}
|
package/nitro.json
CHANGED
|
@@ -56,5 +56,7 @@ def add_nitrogen_files(spec)
|
|
|
56
56
|
"SWIFT_OBJC_INTEROP_MODE" => "objcxx",
|
|
57
57
|
# Enables stricter modular headers
|
|
58
58
|
"DEFINES_MODULE" => "YES",
|
|
59
|
+
# Disable auto-generated ObjC header for Swift (Static linkage on Xcode 26.4 breaks here)
|
|
60
|
+
"SWIFT_INSTALL_OBJC_HEADER" => "NO",
|
|
59
61
|
})
|
|
60
62
|
end
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-auth",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.7",
|
|
4
4
|
"description": "High-performance authentication library for React Native with Google Sign-In, Apple Sign-In, and Microsoft Sign-In support, powered by Nitro Modules (JSI)",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -33,9 +33,10 @@
|
|
|
33
33
|
"build": "bob build",
|
|
34
34
|
"clean": "rimraf lib nitrogen/generated",
|
|
35
35
|
"codegen": "nitrogen --logLevel=\"debug\"",
|
|
36
|
+
"format:check": "eslint .",
|
|
36
37
|
"lint": "eslint .",
|
|
37
38
|
"typecheck": "tsc --noEmit",
|
|
38
|
-
"test": "jest",
|
|
39
|
+
"test": "jest",
|
|
39
40
|
"test:coverage": "jest --coverage",
|
|
40
41
|
"test:cpp": "node scripts/test-cpp.js",
|
|
41
42
|
"prepublishOnly": "bun run clean && bun run build",
|
|
@@ -86,7 +87,7 @@
|
|
|
86
87
|
"jest-environment-jsdom": "^29.7.0",
|
|
87
88
|
"react": "19.2.0",
|
|
88
89
|
"react-native": "0.83.2",
|
|
89
|
-
"react-native-nitro-modules": "^0.35.
|
|
90
|
+
"react-native-nitro-modules": "^0.35.4",
|
|
90
91
|
"react-native-web": "^0.21.2",
|
|
91
92
|
"typescript": "^5.9.3"
|
|
92
93
|
},
|
package/src/Auth.nitro.ts
CHANGED
|
@@ -8,6 +8,8 @@ export type AuthErrorCode =
|
|
|
8
8
|
| "popup_blocked"
|
|
9
9
|
| "network_error"
|
|
10
10
|
| "configuration_error"
|
|
11
|
+
| "not_signed_in"
|
|
12
|
+
| "operation_in_progress"
|
|
11
13
|
| "unsupported_provider"
|
|
12
14
|
| "invalid_state"
|
|
13
15
|
| "invalid_nonce"
|
|
@@ -25,7 +27,7 @@ export interface LoginOptions {
|
|
|
25
27
|
useOneTap?: boolean;
|
|
26
28
|
/** (iOS only) Use native sign-in sheet */
|
|
27
29
|
useSheet?: boolean;
|
|
28
|
-
/** Force account picker to show, ignoring any cached session or loginHint */
|
|
30
|
+
/** Force account picker to show, ignoring any cached session or loginHint. On Android Google, this uses the legacy chooser path. */
|
|
29
31
|
forceAccountPicker?: boolean;
|
|
30
32
|
/** (Android only) Use legacy Google Sign-In flow (e.g. for serverAuthCode) */
|
|
31
33
|
useLegacyGoogleSignIn?: boolean;
|
package/src/service.ts
CHANGED
|
@@ -8,28 +8,33 @@ import type {
|
|
|
8
8
|
} from "./Auth.nitro";
|
|
9
9
|
import { AuthError } from "./utils/auth-error";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
let nitroAuth: Auth | undefined;
|
|
12
|
+
|
|
13
|
+
function getNitroAuth(): Auth {
|
|
14
|
+
nitroAuth ??= NitroModules.createHybridObject<Auth>("Auth");
|
|
15
|
+
return nitroAuth;
|
|
16
|
+
}
|
|
12
17
|
|
|
13
18
|
export const AuthService: Auth = {
|
|
14
19
|
get name() {
|
|
15
|
-
return
|
|
20
|
+
return getNitroAuth().name;
|
|
16
21
|
},
|
|
17
22
|
|
|
18
23
|
get currentUser() {
|
|
19
|
-
return
|
|
24
|
+
return getNitroAuth().currentUser;
|
|
20
25
|
},
|
|
21
26
|
|
|
22
27
|
get grantedScopes() {
|
|
23
|
-
return
|
|
28
|
+
return getNitroAuth().grantedScopes;
|
|
24
29
|
},
|
|
25
30
|
|
|
26
31
|
get hasPlayServices() {
|
|
27
|
-
return
|
|
32
|
+
return getNitroAuth().hasPlayServices;
|
|
28
33
|
},
|
|
29
34
|
|
|
30
35
|
async login(provider: AuthProvider, options?: LoginOptions) {
|
|
31
36
|
try {
|
|
32
|
-
await
|
|
37
|
+
await getNitroAuth().login(provider, options);
|
|
33
38
|
return;
|
|
34
39
|
} catch (e) {
|
|
35
40
|
throw AuthError.from(e);
|
|
@@ -38,7 +43,7 @@ export const AuthService: Auth = {
|
|
|
38
43
|
|
|
39
44
|
async requestScopes(scopes: string[]) {
|
|
40
45
|
try {
|
|
41
|
-
await
|
|
46
|
+
await getNitroAuth().requestScopes(scopes);
|
|
42
47
|
return;
|
|
43
48
|
} catch (e) {
|
|
44
49
|
throw AuthError.from(e);
|
|
@@ -47,7 +52,7 @@ export const AuthService: Auth = {
|
|
|
47
52
|
|
|
48
53
|
async revokeScopes(scopes: string[]) {
|
|
49
54
|
try {
|
|
50
|
-
await
|
|
55
|
+
await getNitroAuth().revokeScopes(scopes);
|
|
51
56
|
return;
|
|
52
57
|
} catch (e) {
|
|
53
58
|
throw AuthError.from(e);
|
|
@@ -56,7 +61,7 @@ export const AuthService: Auth = {
|
|
|
56
61
|
|
|
57
62
|
async getAccessToken() {
|
|
58
63
|
try {
|
|
59
|
-
return await
|
|
64
|
+
return await getNitroAuth().getAccessToken();
|
|
60
65
|
} catch (e) {
|
|
61
66
|
throw AuthError.from(e);
|
|
62
67
|
}
|
|
@@ -64,19 +69,19 @@ export const AuthService: Auth = {
|
|
|
64
69
|
|
|
65
70
|
async refreshToken() {
|
|
66
71
|
try {
|
|
67
|
-
return await
|
|
72
|
+
return await getNitroAuth().refreshToken();
|
|
68
73
|
} catch (e) {
|
|
69
74
|
throw AuthError.from(e);
|
|
70
75
|
}
|
|
71
76
|
},
|
|
72
77
|
|
|
73
78
|
logout() {
|
|
74
|
-
|
|
79
|
+
getNitroAuth().logout();
|
|
75
80
|
},
|
|
76
81
|
|
|
77
82
|
async silentRestore() {
|
|
78
83
|
try {
|
|
79
|
-
await
|
|
84
|
+
await getNitroAuth().silentRestore();
|
|
80
85
|
return;
|
|
81
86
|
} catch (e) {
|
|
82
87
|
throw AuthError.from(e);
|
|
@@ -84,22 +89,22 @@ export const AuthService: Auth = {
|
|
|
84
89
|
},
|
|
85
90
|
|
|
86
91
|
onAuthStateChanged(callback: (user: AuthUser | undefined) => void) {
|
|
87
|
-
return
|
|
92
|
+
return getNitroAuth().onAuthStateChanged(callback);
|
|
88
93
|
},
|
|
89
94
|
|
|
90
95
|
onTokensRefreshed(callback: (tokens: AuthTokens) => void) {
|
|
91
|
-
return
|
|
96
|
+
return getNitroAuth().onTokensRefreshed(callback);
|
|
92
97
|
},
|
|
93
98
|
|
|
94
99
|
setLoggingEnabled(enabled: boolean) {
|
|
95
|
-
|
|
100
|
+
getNitroAuth().setLoggingEnabled(enabled);
|
|
96
101
|
},
|
|
97
102
|
|
|
98
103
|
dispose() {
|
|
99
|
-
|
|
104
|
+
getNitroAuth().dispose();
|
|
100
105
|
},
|
|
101
106
|
|
|
102
107
|
equals(other: Parameters<Auth["equals"]>[0]): boolean {
|
|
103
|
-
return
|
|
108
|
+
return getNitroAuth().equals(other);
|
|
104
109
|
},
|
|
105
110
|
};
|
package/src/use-auth.ts
CHANGED
|
@@ -8,6 +8,8 @@ import type {
|
|
|
8
8
|
import { AuthService } from "./service";
|
|
9
9
|
import { AuthError } from "./utils/auth-error";
|
|
10
10
|
|
|
11
|
+
const EMPTY_SCOPES: string[] = [];
|
|
12
|
+
|
|
11
13
|
type AuthState = {
|
|
12
14
|
user: AuthUser | undefined;
|
|
13
15
|
scopes: string[];
|
|
@@ -16,13 +18,25 @@ type AuthState = {
|
|
|
16
18
|
};
|
|
17
19
|
|
|
18
20
|
const areScopesEqual = (left: string[], right: string[]): boolean => {
|
|
21
|
+
if (left === right) return true;
|
|
19
22
|
if (left.length !== right.length) return false;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
for (let i = 0; i <
|
|
23
|
-
if (
|
|
23
|
+
|
|
24
|
+
let matchesInOrder = true;
|
|
25
|
+
for (let i = 0; i < left.length; i += 1) {
|
|
26
|
+
if (left[i] !== right[i]) {
|
|
27
|
+
matchesInOrder = false;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (matchesInOrder) return true;
|
|
32
|
+
|
|
33
|
+
const remaining = new Set(left);
|
|
34
|
+
for (const scope of right) {
|
|
35
|
+
if (!remaining.delete(scope)) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
24
38
|
}
|
|
25
|
-
return
|
|
39
|
+
return remaining.size === 0;
|
|
26
40
|
};
|
|
27
41
|
|
|
28
42
|
export type UseAuthReturn = AuthState & {
|
|
@@ -85,7 +99,22 @@ export function useAuth(): UseAuthReturn {
|
|
|
85
99
|
|
|
86
100
|
const logout = useCallback(() => {
|
|
87
101
|
AuthService.logout();
|
|
88
|
-
setState(
|
|
102
|
+
setState((prev) => {
|
|
103
|
+
if (
|
|
104
|
+
prev.user === undefined &&
|
|
105
|
+
prev.scopes.length === 0 &&
|
|
106
|
+
prev.loading === false &&
|
|
107
|
+
prev.error === undefined
|
|
108
|
+
) {
|
|
109
|
+
return prev;
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
user: undefined,
|
|
113
|
+
scopes: EMPTY_SCOPES,
|
|
114
|
+
loading: false,
|
|
115
|
+
error: undefined,
|
|
116
|
+
};
|
|
117
|
+
});
|
|
89
118
|
}, []);
|
|
90
119
|
|
|
91
120
|
const requestScopes = useCallback(
|
package/src/utils/auth-error.ts
CHANGED