@unisim/sdk 0.141.7 → 0.141.8
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 +83 -3
- package/android/src/main/AndroidManifest.xml +24 -0
- package/android/src/main/java/uk/co/unisim/sdk/OAuthCallbackActivity.java +72 -0
- package/android/src/main/java/uk/co/unisim/sdk/UnisimSuiteAuthPlugin.java +129 -0
- package/dist/SignInDialog.d.ts.map +1 -1
- package/dist/SignInDialog.js +49 -3
- package/dist/SignInDialog.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/nativeOAuth.d.ts +208 -0
- package/dist/nativeOAuth.d.ts.map +1 -0
- package/dist/nativeOAuth.js +372 -0
- package/dist/nativeOAuth.js.map +1 -0
- package/dist/oauth.d.ts +6 -0
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +9 -1
- package/dist/oauth.js.map +1 -1
- package/ios/Sources/UnisimSuiteAuthPlugin/SuiteOAuth.swift +257 -0
- package/ios/Sources/UnisimSuiteAuthPlugin/UnisimSuiteAuthPlugin.swift +14 -1
- package/package.json +2 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,4BAA4B;AAC5B,0FAA0F;AAC1F,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,uEAAuE;AACvE,yEAAyE;AACzE,oCAAoC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAGtG,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7E,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,uDAAuD;AACvD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,GACd,MAAM,qBAAqB,CAAA;AAQ5B,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GACb,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,CAAC,IAAI,YAAY,GAClB,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGpF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACnD,yEAAyE;AACzE,iEAAiE;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,yEAAyE;AACzE,8EAA8E;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAqC,MAAM,gBAAgB,CAAA;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,2EAA2E;AAC3E,+EAA+E;AAC/E,6CAA6C;AAC7C,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAGpF,OAAO,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG3C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAOjF,OAAO,EACL,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AAQpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGjE,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAA;AAOtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAQpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAA;AAUpB,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAY1B,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAM1D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG3E,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAG3B,8EAA8E;AAC9E,4EAA4E;AAC5E,6CAA6C;AAC7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAGpE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAGjF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAGlF,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAGnF,6EAA6E;AAC7E,4EAA4E;AAC5E,+CAA+C;AAC/C,OAAO,EACL,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,EACN,YAAY,GACb,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,8EAA8E;AAC9E,+EAA+E;AAC/E,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,gFAAgF;AAChF,8EAA8E;AAC9E,uDAAuD;AACvD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AASjE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,0BAA0B,GAC3B,MAAM,YAAY,CAAA;AAQnB,yEAAyE;AACzE,mEAAmE;AACnE,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAQzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGlD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAQjF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAG9D,+EAA+E;AAC/E,gFAAgF;AAChF,oEAAoE;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,mEAAmE;AACnE,8EAA8E;AAC9E,uEAAuE;AACvE,mDAAmD;AACnD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,wDAAwD;AACxD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAE1F,gEAAgE;AAChE,6EAA6E;AAC7E,+EAA+E;AAC/E,oEAAoE;AACpE,0EAA0E;AAC1E,2CAA2C;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAInC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,2EAA2E;AAC3E,+EAA+E;AAC/E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,6EAA6E;AAC7E,+BAA+B;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAK9C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAK7F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGlE,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import type { useUniversal } from './provider.js';
|
|
2
|
+
import { type OAuthProvider, type OAuthReturnError } from './oauth.js';
|
|
3
|
+
type Supabase = ReturnType<typeof useUniversal>['supabase'];
|
|
4
|
+
/** The host of every app's callback: `<bundle id>://auth-callback`. */
|
|
5
|
+
export declare const NATIVE_OAUTH_CALLBACK_HOST = "auth-callback";
|
|
6
|
+
export type NativePlatform = 'ios' | 'android';
|
|
7
|
+
export interface NativeOAuthSupport {
|
|
8
|
+
platform: NativePlatform;
|
|
9
|
+
/** `<bundle id>://auth-callback` — where Supabase sends the browser back to. */
|
|
10
|
+
callbackUrl: string;
|
|
11
|
+
/** True where Apple is the OS sheet rather than a browser page (iOS). */
|
|
12
|
+
appleNative: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The native half: three methods on the EXISTING `UnisimSuiteAuth` plugin.
|
|
16
|
+
*
|
|
17
|
+
* ⚠️ On that plugin rather than a new one on purpose — Capacitor resolves
|
|
18
|
+
* plugins through a `capacitor.plugins.json` generated per app, so a new
|
|
19
|
+
* plugin class would be missing from every app until each re-synced, and
|
|
20
|
+
* missing looks like nothing at all. See the note in UnisimSuiteAuthPlugin.
|
|
21
|
+
*/
|
|
22
|
+
export interface NativeOAuthPlugin {
|
|
23
|
+
oauthSupport(): Promise<{
|
|
24
|
+
platform?: string;
|
|
25
|
+
callbackUrl?: string;
|
|
26
|
+
appleNative?: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
oauthStart(options: {
|
|
29
|
+
url: string;
|
|
30
|
+
}): Promise<{
|
|
31
|
+
url?: string | null;
|
|
32
|
+
cancelled?: boolean;
|
|
33
|
+
}>;
|
|
34
|
+
appleSignIn(): Promise<{
|
|
35
|
+
cancelled?: boolean;
|
|
36
|
+
identityToken?: string | null;
|
|
37
|
+
nonce?: string | null;
|
|
38
|
+
givenName?: string | null;
|
|
39
|
+
familyName?: string | null;
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
/** Validate what the plugin reported; anything unexpected reads as "unsupported". */
|
|
43
|
+
export declare function normaliseNativeSupport(raw: unknown): NativeOAuthSupport | null;
|
|
44
|
+
/**
|
|
45
|
+
* Whether this build can do native provider sign-in, and how. Null in a
|
|
46
|
+
* browser, and in a native build whose plugin predates it (an app synced
|
|
47
|
+
* against an older SDK) — the dialog then offers no provider tab at all, which
|
|
48
|
+
* is the honest page.
|
|
49
|
+
*/
|
|
50
|
+
export declare function nativeOAuthSupport(plugin?: NativeOAuthPlugin | null): Promise<NativeOAuthSupport | null>;
|
|
51
|
+
/**
|
|
52
|
+
* The providers a native shell should offer, given what the project has
|
|
53
|
+
* switched on.
|
|
54
|
+
*
|
|
55
|
+
* ⚠️ App Review guideline 4.8: an iPhone app offering Google or Microsoft
|
|
56
|
+
* sign-in must offer Sign in with Apple too. So on iOS the provider list is
|
|
57
|
+
* all-or-nothing on Apple — if Apple is off, Google and Microsoft are withheld
|
|
58
|
+
* as well, and the app offers the email code alone (which 4.8 accepts). Android
|
|
59
|
+
* has no such rule; there Apple, where on, is a browser page like the others.
|
|
60
|
+
*/
|
|
61
|
+
export declare function nativeProvidersToOffer(enabled: readonly OAuthProvider[], support: NativeOAuthSupport | null): OAuthProvider[];
|
|
62
|
+
interface CryptoLike {
|
|
63
|
+
getRandomValues<T extends ArrayBufferView>(array: T): T;
|
|
64
|
+
subtle?: {
|
|
65
|
+
digest(algorithm: string, data: BufferSource): Promise<ArrayBuffer>;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export interface PkcePair {
|
|
69
|
+
verifier: string;
|
|
70
|
+
challenge: string;
|
|
71
|
+
/** GoTrue's spelling — lower-case, as supabase-js sends it. */
|
|
72
|
+
method: 's256' | 'plain';
|
|
73
|
+
}
|
|
74
|
+
/** RFC 4648 §5 base64url, no padding — RFC 7636's encoding of the challenge. */
|
|
75
|
+
export declare function base64UrlEncode(bytes: Uint8Array): string;
|
|
76
|
+
/**
|
|
77
|
+
* The S256 challenge for a verifier, or the verifier itself as a `plain`
|
|
78
|
+
* challenge where WebCrypto is unavailable — the same fallback supabase-js
|
|
79
|
+
* makes. `crypto.subtle` exists only in a secure context, and whether a
|
|
80
|
+
* Capacitor origin counts is WebKit's decision, not ours.
|
|
81
|
+
*
|
|
82
|
+
* `plain` still protects the thing PKCE is here for: the verifier travels
|
|
83
|
+
* app → browser in the authorize URL and never through the redirect an
|
|
84
|
+
* interloper could intercept.
|
|
85
|
+
*/
|
|
86
|
+
export declare function pkceChallenge(verifier: string, cryptoImpl?: CryptoLike | null): Promise<{
|
|
87
|
+
challenge: string;
|
|
88
|
+
method: 's256' | 'plain';
|
|
89
|
+
}>;
|
|
90
|
+
/** A fresh verifier (64 hex characters — inside RFC 7636's 43–128) and its challenge. */
|
|
91
|
+
export declare function createPkcePair(cryptoImpl?: CryptoLike | null): Promise<PkcePair>;
|
|
92
|
+
export interface NativeAuthorizeUrlInput {
|
|
93
|
+
supabaseUrl: string;
|
|
94
|
+
provider: OAuthProvider;
|
|
95
|
+
/** The app's deep link, from `nativeOAuthSupport().callbackUrl`. */
|
|
96
|
+
redirectTo: string;
|
|
97
|
+
pkce: {
|
|
98
|
+
challenge: string;
|
|
99
|
+
method: 's256' | 'plain';
|
|
100
|
+
};
|
|
101
|
+
loginHint?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Link the provider to the signed-in (anonymous) user instead of signing in.
|
|
104
|
+
* Uses the identities endpoint, which must be called WITH the user's bearer
|
|
105
|
+
* token and answers JSON `{ url }` — see `skip_http_redirect`.
|
|
106
|
+
*/
|
|
107
|
+
link?: boolean;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The GoTrue URL that starts a provider round trip, carrying the PKCE
|
|
111
|
+
* challenge. Sign-in: open it in the system browser. Link: fetch it with the
|
|
112
|
+
* user's JWT and open the `url` it answers with.
|
|
113
|
+
*/
|
|
114
|
+
export declare function buildNativeAuthorizeUrl(input: NativeAuthorizeUrlInput): string;
|
|
115
|
+
export interface CustomSchemeUrlParts {
|
|
116
|
+
scheme: string;
|
|
117
|
+
host: string;
|
|
118
|
+
path: string;
|
|
119
|
+
query: URLSearchParams;
|
|
120
|
+
fragment: URLSearchParams;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Split `scheme://host/path?query#fragment` by hand.
|
|
124
|
+
*
|
|
125
|
+
* ⚠️ Not `new URL()`: for a non-special scheme (anything that isn't http,
|
|
126
|
+
* file, …) older Android System WebViews return an EMPTY host and fold the
|
|
127
|
+
* authority into the path, so `url.host === 'auth-callback'` would fail on
|
|
128
|
+
* some phones and pass on the test machine.
|
|
129
|
+
*/
|
|
130
|
+
export declare function splitCustomSchemeUrl(value: string): CustomSchemeUrlParts | null;
|
|
131
|
+
export type NativeOAuthCallback = {
|
|
132
|
+
kind: 'code';
|
|
133
|
+
code: string;
|
|
134
|
+
} | {
|
|
135
|
+
kind: 'error';
|
|
136
|
+
error: OAuthReturnError;
|
|
137
|
+
} | {
|
|
138
|
+
kind: 'invalid';
|
|
139
|
+
reason: string;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Read the deep link Supabase sent the browser back to.
|
|
143
|
+
*
|
|
144
|
+
* Errors are read from the query string AND the fragment, for the reason
|
|
145
|
+
* `readOAuthError` gives. Success must be a `code` in the query: tokens in a
|
|
146
|
+
* fragment are refused (see the header) — they would mean the project ignored
|
|
147
|
+
* the PKCE challenge, and accepting them is how an injected callback signs
|
|
148
|
+
* someone into the wrong account.
|
|
149
|
+
*/
|
|
150
|
+
export declare function parseNativeOAuthCallback(received: string, expected: string): NativeOAuthCallback;
|
|
151
|
+
type NativeError = {
|
|
152
|
+
message: string;
|
|
153
|
+
code: string | null;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* A GoTrue error body as `{ code, message }`, in the codes the web flow
|
|
157
|
+
* produces. GoTrue has used two shapes — `{ code: 422, error_code, msg }` and,
|
|
158
|
+
* on the newer API version, `{ code: 'manual_linking_disabled', message }` —
|
|
159
|
+
* and OAuth-style `{ error, error_description }` besides.
|
|
160
|
+
*/
|
|
161
|
+
export declare function gotrueError(body: unknown, status: number): NativeError;
|
|
162
|
+
export interface NativeOAuthOptions {
|
|
163
|
+
/** `config.supabaseUrl` — the GoTrue calls are made directly (see header). */
|
|
164
|
+
supabaseUrl: string;
|
|
165
|
+
/** `config.supabaseAnonKey`. */
|
|
166
|
+
anonKey: string;
|
|
167
|
+
/** A typed email, passed to Google/Microsoft as `login_hint`. */
|
|
168
|
+
loginHint?: string;
|
|
169
|
+
/**
|
|
170
|
+
* Sign in as a fresh user even over a trial session — the recovery path for
|
|
171
|
+
* `identity_already_exists`, and only after the user has agreed to leave the
|
|
172
|
+
* trial's work behind. See `abandonTrialAndSignInNative`.
|
|
173
|
+
*/
|
|
174
|
+
forceNewSession?: boolean;
|
|
175
|
+
/** Test seams. */
|
|
176
|
+
plugin?: NativeOAuthPlugin | null;
|
|
177
|
+
fetchImpl?: typeof fetch;
|
|
178
|
+
cryptoImpl?: CryptoLike | null;
|
|
179
|
+
}
|
|
180
|
+
export interface NativeOAuthResult {
|
|
181
|
+
/**
|
|
182
|
+
* `signed-in`: the session is installed (and in the shared store).
|
|
183
|
+
* `cancelled`: the person closed the sheet or the browser — not an error,
|
|
184
|
+
* say nothing. `error`: see `error`, which carries the web flow's codes.
|
|
185
|
+
*/
|
|
186
|
+
status: 'signed-in' | 'cancelled' | 'error';
|
|
187
|
+
/** `link` when a trial session was being upgraded in place. */
|
|
188
|
+
mode: 'link' | 'signin';
|
|
189
|
+
error: NativeError | null;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Apple / Google / Microsoft sign-in from a native shell, upgrading a trial
|
|
193
|
+
* session in place where there is one. Unlike the web `startOAuthSignIn` this
|
|
194
|
+
* resolves when the whole round trip is over — the app never navigates away.
|
|
195
|
+
*/
|
|
196
|
+
export declare function startNativeOAuthSignIn(supabase: Supabase, provider: OAuthProvider, options: NativeOAuthOptions): Promise<NativeOAuthResult>;
|
|
197
|
+
/**
|
|
198
|
+
* The native escape hatch for `identity_already_exists`: sign in as the
|
|
199
|
+
* provider's existing account, leaving the trial's work behind. Call it only
|
|
200
|
+
* after the user has agreed to that.
|
|
201
|
+
*
|
|
202
|
+
* Unlike the web `abandonTrialAndSignIn` there is no sign-out first: the new
|
|
203
|
+
* session simply replaces the trial one when it lands, so a person who cancels
|
|
204
|
+
* the sheet still has their trial.
|
|
205
|
+
*/
|
|
206
|
+
export declare function abandonTrialAndSignInNative(supabase: Supabase, provider: OAuthProvider, options: NativeOAuthOptions): Promise<NativeOAuthResult>;
|
|
207
|
+
export {};
|
|
208
|
+
//# sourceMappingURL=nativeOAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeOAuth.d.ts","sourceRoot":"","sources":["../src/nativeOAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { capacitorPlugin } from './sessionStorage.js';
|
|
3
|
+
import { loginHintParams, oauthErrorFromParams } from './oauth.js';
|
|
4
|
+
/** The host of every app's callback: `<bundle id>://auth-callback`. */
|
|
5
|
+
export const NATIVE_OAUTH_CALLBACK_HOST = 'auth-callback';
|
|
6
|
+
function nativeOAuthPlugin() {
|
|
7
|
+
return capacitorPlugin('UnisimSuiteAuth');
|
|
8
|
+
}
|
|
9
|
+
/** Validate what the plugin reported; anything unexpected reads as "unsupported". */
|
|
10
|
+
export function normaliseNativeSupport(raw) {
|
|
11
|
+
const r = raw;
|
|
12
|
+
if (!r || typeof r !== 'object')
|
|
13
|
+
return null;
|
|
14
|
+
const platform = r.platform === 'ios' || r.platform === 'android' ? r.platform : null;
|
|
15
|
+
const callbackUrl = typeof r.callbackUrl === 'string' ? r.callbackUrl : '';
|
|
16
|
+
const parts = splitCustomSchemeUrl(callbackUrl);
|
|
17
|
+
if (!platform || !parts || parts.host !== NATIVE_OAUTH_CALLBACK_HOST)
|
|
18
|
+
return null;
|
|
19
|
+
if (parts.scheme === 'http' || parts.scheme === 'https')
|
|
20
|
+
return null;
|
|
21
|
+
return { platform, callbackUrl, appleNative: platform === 'ios' && r.appleNative === true };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Whether this build can do native provider sign-in, and how. Null in a
|
|
25
|
+
* browser, and in a native build whose plugin predates it (an app synced
|
|
26
|
+
* against an older SDK) — the dialog then offers no provider tab at all, which
|
|
27
|
+
* is the honest page.
|
|
28
|
+
*/
|
|
29
|
+
export async function nativeOAuthSupport(plugin = nativeOAuthPlugin()) {
|
|
30
|
+
if (!plugin || typeof plugin.oauthSupport !== 'function')
|
|
31
|
+
return null;
|
|
32
|
+
try {
|
|
33
|
+
return normaliseNativeSupport(await plugin.oauthSupport());
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// An older native half answers "not implemented" here.
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The providers a native shell should offer, given what the project has
|
|
42
|
+
* switched on.
|
|
43
|
+
*
|
|
44
|
+
* ⚠️ App Review guideline 4.8: an iPhone app offering Google or Microsoft
|
|
45
|
+
* sign-in must offer Sign in with Apple too. So on iOS the provider list is
|
|
46
|
+
* all-or-nothing on Apple — if Apple is off, Google and Microsoft are withheld
|
|
47
|
+
* as well, and the app offers the email code alone (which 4.8 accepts). Android
|
|
48
|
+
* has no such rule; there Apple, where on, is a browser page like the others.
|
|
49
|
+
*/
|
|
50
|
+
export function nativeProvidersToOffer(enabled, support) {
|
|
51
|
+
if (!support)
|
|
52
|
+
return [];
|
|
53
|
+
if (support.platform === 'ios' && !enabled.includes('apple'))
|
|
54
|
+
return [];
|
|
55
|
+
return [...enabled];
|
|
56
|
+
}
|
|
57
|
+
function defaultCrypto() {
|
|
58
|
+
return globalThis.crypto ?? null;
|
|
59
|
+
}
|
|
60
|
+
/** RFC 4648 §5 base64url, no padding — RFC 7636's encoding of the challenge. */
|
|
61
|
+
export function base64UrlEncode(bytes) {
|
|
62
|
+
let binary = '';
|
|
63
|
+
for (const b of bytes)
|
|
64
|
+
binary += String.fromCharCode(b);
|
|
65
|
+
return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The S256 challenge for a verifier, or the verifier itself as a `plain`
|
|
69
|
+
* challenge where WebCrypto is unavailable — the same fallback supabase-js
|
|
70
|
+
* makes. `crypto.subtle` exists only in a secure context, and whether a
|
|
71
|
+
* Capacitor origin counts is WebKit's decision, not ours.
|
|
72
|
+
*
|
|
73
|
+
* `plain` still protects the thing PKCE is here for: the verifier travels
|
|
74
|
+
* app → browser in the authorize URL and never through the redirect an
|
|
75
|
+
* interloper could intercept.
|
|
76
|
+
*/
|
|
77
|
+
export async function pkceChallenge(verifier, cryptoImpl = defaultCrypto()) {
|
|
78
|
+
const subtle = cryptoImpl?.subtle;
|
|
79
|
+
if (subtle && typeof TextEncoder !== 'undefined') {
|
|
80
|
+
try {
|
|
81
|
+
const digest = await subtle.digest('SHA-256', new TextEncoder().encode(verifier));
|
|
82
|
+
return { challenge: base64UrlEncode(new Uint8Array(digest)), method: 's256' };
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
/* fall through to plain */
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return { challenge: verifier, method: 'plain' };
|
|
89
|
+
}
|
|
90
|
+
/** A fresh verifier (64 hex characters — inside RFC 7636's 43–128) and its challenge. */
|
|
91
|
+
export async function createPkcePair(cryptoImpl = defaultCrypto()) {
|
|
92
|
+
if (!cryptoImpl || typeof cryptoImpl.getRandomValues !== 'function') {
|
|
93
|
+
throw new Error('No secure random source to start a sign-in with');
|
|
94
|
+
}
|
|
95
|
+
const bytes = cryptoImpl.getRandomValues(new Uint8Array(32));
|
|
96
|
+
const verifier = Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
|
|
97
|
+
const { challenge, method } = await pkceChallenge(verifier, cryptoImpl);
|
|
98
|
+
return { verifier, challenge, method };
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The GoTrue URL that starts a provider round trip, carrying the PKCE
|
|
102
|
+
* challenge. Sign-in: open it in the system browser. Link: fetch it with the
|
|
103
|
+
* user's JWT and open the `url` it answers with.
|
|
104
|
+
*/
|
|
105
|
+
export function buildNativeAuthorizeUrl(input) {
|
|
106
|
+
const base = input.supabaseUrl.replace(/\/+$/, '');
|
|
107
|
+
const path = input.link ? '/auth/v1/user/identities/authorize' : '/auth/v1/authorize';
|
|
108
|
+
const params = new URLSearchParams({
|
|
109
|
+
provider: input.provider,
|
|
110
|
+
redirect_to: input.redirectTo,
|
|
111
|
+
code_challenge: input.pkce.challenge,
|
|
112
|
+
code_challenge_method: input.pkce.method,
|
|
113
|
+
});
|
|
114
|
+
for (const [key, value] of Object.entries(loginHintParams(input.provider, input.loginHint) ?? {})) {
|
|
115
|
+
params.set(key, value);
|
|
116
|
+
}
|
|
117
|
+
if (input.link)
|
|
118
|
+
params.set('skip_http_redirect', 'true');
|
|
119
|
+
return `${base}${path}?${params.toString()}`;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Split `scheme://host/path?query#fragment` by hand.
|
|
123
|
+
*
|
|
124
|
+
* ⚠️ Not `new URL()`: for a non-special scheme (anything that isn't http,
|
|
125
|
+
* file, …) older Android System WebViews return an EMPTY host and fold the
|
|
126
|
+
* authority into the path, so `url.host === 'auth-callback'` would fail on
|
|
127
|
+
* some phones and pass on the test machine.
|
|
128
|
+
*/
|
|
129
|
+
export function splitCustomSchemeUrl(value) {
|
|
130
|
+
const m = /^([a-zA-Z][a-zA-Z0-9+.-]*):\/\/([^/?#]*)([^?#]*)(\?[^#]*)?(#.*)?$/.exec(value);
|
|
131
|
+
if (!m)
|
|
132
|
+
return null;
|
|
133
|
+
return {
|
|
134
|
+
scheme: (m[1] ?? '').toLowerCase(),
|
|
135
|
+
host: (m[2] ?? '').toLowerCase(),
|
|
136
|
+
path: m[3] ?? '',
|
|
137
|
+
query: new URLSearchParams((m[4] ?? '').slice(1)),
|
|
138
|
+
fragment: new URLSearchParams((m[5] ?? '').slice(1)),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Read the deep link Supabase sent the browser back to.
|
|
143
|
+
*
|
|
144
|
+
* Errors are read from the query string AND the fragment, for the reason
|
|
145
|
+
* `readOAuthError` gives. Success must be a `code` in the query: tokens in a
|
|
146
|
+
* fragment are refused (see the header) — they would mean the project ignored
|
|
147
|
+
* the PKCE challenge, and accepting them is how an injected callback signs
|
|
148
|
+
* someone into the wrong account.
|
|
149
|
+
*/
|
|
150
|
+
export function parseNativeOAuthCallback(received, expected) {
|
|
151
|
+
const got = splitCustomSchemeUrl(received);
|
|
152
|
+
const want = splitCustomSchemeUrl(expected);
|
|
153
|
+
if (!got || !want || got.scheme !== want.scheme || got.host !== want.host) {
|
|
154
|
+
return { kind: 'invalid', reason: 'not this app\'s callback address' };
|
|
155
|
+
}
|
|
156
|
+
const error = oauthErrorFromParams([got.query, got.fragment]);
|
|
157
|
+
if (error)
|
|
158
|
+
return { kind: 'error', error };
|
|
159
|
+
const code = got.query.get('code');
|
|
160
|
+
if (code)
|
|
161
|
+
return { kind: 'code', code };
|
|
162
|
+
if (got.fragment.has('access_token')) {
|
|
163
|
+
return { kind: 'invalid', reason: 'tokens instead of a code' };
|
|
164
|
+
}
|
|
165
|
+
return { kind: 'invalid', reason: 'no code' };
|
|
166
|
+
}
|
|
167
|
+
function str(value) {
|
|
168
|
+
return typeof value === 'string' && value.length > 0 ? value : null;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* A GoTrue error body as `{ code, message }`, in the codes the web flow
|
|
172
|
+
* produces. GoTrue has used two shapes — `{ code: 422, error_code, msg }` and,
|
|
173
|
+
* on the newer API version, `{ code: 'manual_linking_disabled', message }` —
|
|
174
|
+
* and OAuth-style `{ error, error_description }` besides.
|
|
175
|
+
*/
|
|
176
|
+
export function gotrueError(body, status) {
|
|
177
|
+
const b = (body ?? {});
|
|
178
|
+
return {
|
|
179
|
+
code: str(b.error_code) ?? str(b.code) ?? str(b.error),
|
|
180
|
+
message: str(b.msg) ?? str(b.message) ?? str(b.error_description) ?? str(b.error) ??
|
|
181
|
+
`Sign-in failed (HTTP ${status})`,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
async function gotrue(fetchImpl, url, init) {
|
|
185
|
+
let res;
|
|
186
|
+
try {
|
|
187
|
+
res = await fetchImpl(url, init);
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
return { ok: false, error: { code: 'network_error', message: err?.message || 'Network error' } };
|
|
191
|
+
}
|
|
192
|
+
let body = {};
|
|
193
|
+
try {
|
|
194
|
+
body = ((await res.json()) ?? {});
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
/* an empty or non-JSON body — the status still says what happened */
|
|
198
|
+
}
|
|
199
|
+
if (!res.ok)
|
|
200
|
+
return { ok: false, error: gotrueError(body, res.status) };
|
|
201
|
+
return { ok: true, body };
|
|
202
|
+
}
|
|
203
|
+
function headers(anonKey, bearer) {
|
|
204
|
+
const h = { apikey: anonKey, 'Content-Type': 'application/json' };
|
|
205
|
+
if (bearer)
|
|
206
|
+
h.Authorization = `Bearer ${bearer}`;
|
|
207
|
+
return h;
|
|
208
|
+
}
|
|
209
|
+
function sessionFrom(body) {
|
|
210
|
+
const access_token = str(body.access_token);
|
|
211
|
+
const refresh_token = str(body.refresh_token);
|
|
212
|
+
return access_token && refresh_token ? { access_token, refresh_token } : null;
|
|
213
|
+
}
|
|
214
|
+
function pluginError(err, fallbackCode) {
|
|
215
|
+
const e = err;
|
|
216
|
+
return {
|
|
217
|
+
code: e?.code !== undefined && e?.code !== null ? String(e.code) : fallbackCode,
|
|
218
|
+
message: e?.message || 'Sign-in could not be started',
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
const BAD_RESPONSE = { code: 'invalid_response', message: 'Sign-in returned no session.' };
|
|
222
|
+
/**
|
|
223
|
+
* Apple / Google / Microsoft sign-in from a native shell, upgrading a trial
|
|
224
|
+
* session in place where there is one. Unlike the web `startOAuthSignIn` this
|
|
225
|
+
* resolves when the whole round trip is over — the app never navigates away.
|
|
226
|
+
*/
|
|
227
|
+
export async function startNativeOAuthSignIn(supabase, provider, options) {
|
|
228
|
+
const plugin = options.plugin === undefined ? nativeOAuthPlugin() : options.plugin;
|
|
229
|
+
const fetchImpl = options.fetchImpl ?? fetch;
|
|
230
|
+
const base = options.supabaseUrl.replace(/\/+$/, '');
|
|
231
|
+
let mode = 'signin';
|
|
232
|
+
const fail = (error) => ({ status: 'error', mode, error });
|
|
233
|
+
const support = await nativeOAuthSupport(plugin);
|
|
234
|
+
if (!plugin || !support) {
|
|
235
|
+
return fail({ code: 'native_oauth_unavailable', message: 'This app cannot open a sign-in window.' });
|
|
236
|
+
}
|
|
237
|
+
// The trial check mirrors oauth.ts: anonymous → link, everyone else → sign in.
|
|
238
|
+
let bearer = null;
|
|
239
|
+
if (!options.forceNewSession) {
|
|
240
|
+
const { data } = await supabase.auth.getSession();
|
|
241
|
+
const session = data.session;
|
|
242
|
+
if (session?.user?.is_anonymous === true && session?.access_token) {
|
|
243
|
+
mode = 'link';
|
|
244
|
+
bearer = session.access_token;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
const leg = provider === 'apple' && support.appleNative
|
|
248
|
+
? await viaAppleSheet(plugin, base, options.anonKey, bearer, fetchImpl)
|
|
249
|
+
: await viaSystemBrowser(plugin, support, provider, base, options, bearer, fetchImpl);
|
|
250
|
+
if ('cancelled' in leg)
|
|
251
|
+
return { status: 'cancelled', mode, error: null };
|
|
252
|
+
if ('error' in leg)
|
|
253
|
+
return fail(leg.error);
|
|
254
|
+
// Through the client, so it lands in the storage adapter (the shared suite
|
|
255
|
+
// store) and every onAuthStateChange listener hears SIGNED_IN.
|
|
256
|
+
const { error } = await supabase.auth.setSession(leg.session);
|
|
257
|
+
if (error) {
|
|
258
|
+
const e = error;
|
|
259
|
+
return fail({ message: e.message ?? 'Sign-in failed', code: e.code ?? null });
|
|
260
|
+
}
|
|
261
|
+
// Apple hands over the name ONCE, on the first sign-in, and never puts it in
|
|
262
|
+
// the token — keep it or it is gone. Never fatal.
|
|
263
|
+
const given = leg.name?.given ?? null;
|
|
264
|
+
const family = leg.name?.family ?? null;
|
|
265
|
+
if (given || family) {
|
|
266
|
+
const fullName = [given, family].filter(Boolean).join(' ');
|
|
267
|
+
try {
|
|
268
|
+
await supabase.auth.updateUser({
|
|
269
|
+
data: { full_name: fullName, ...(given ? { given_name: given } : {}), ...(family ? { family_name: family } : {}) },
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
/* the sign-in itself succeeded */
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return { status: 'signed-in', mode, error: null };
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* The native escape hatch for `identity_already_exists`: sign in as the
|
|
280
|
+
* provider's existing account, leaving the trial's work behind. Call it only
|
|
281
|
+
* after the user has agreed to that.
|
|
282
|
+
*
|
|
283
|
+
* Unlike the web `abandonTrialAndSignIn` there is no sign-out first: the new
|
|
284
|
+
* session simply replaces the trial one when it lands, so a person who cancels
|
|
285
|
+
* the sheet still has their trial.
|
|
286
|
+
*/
|
|
287
|
+
export function abandonTrialAndSignInNative(supabase, provider, options) {
|
|
288
|
+
return startNativeOAuthSignIn(supabase, provider, { ...options, forceNewSession: true });
|
|
289
|
+
}
|
|
290
|
+
async function viaAppleSheet(plugin, base, anonKey, bearer, fetchImpl) {
|
|
291
|
+
let res;
|
|
292
|
+
try {
|
|
293
|
+
res = await plugin.appleSignIn();
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
return { error: pluginError(err, 'apple_signin_failed') };
|
|
297
|
+
}
|
|
298
|
+
if (res?.cancelled)
|
|
299
|
+
return { cancelled: true };
|
|
300
|
+
if (!res?.identityToken || !res.nonce) {
|
|
301
|
+
return { error: { code: 'apple_no_token', message: 'Apple did not return a sign-in token.' } };
|
|
302
|
+
}
|
|
303
|
+
// The RAW nonce: the sheet sent Apple its SHA-256, and GoTrue hashes this to
|
|
304
|
+
// compare against the token's `nonce` claim.
|
|
305
|
+
const body = { provider: 'apple', id_token: res.identityToken, nonce: res.nonce };
|
|
306
|
+
if (bearer)
|
|
307
|
+
body.link_identity = true;
|
|
308
|
+
const r = await gotrue(fetchImpl, `${base}/auth/v1/token?grant_type=id_token`, {
|
|
309
|
+
method: 'POST',
|
|
310
|
+
headers: headers(anonKey, bearer),
|
|
311
|
+
body: JSON.stringify(body),
|
|
312
|
+
});
|
|
313
|
+
if (!r.ok)
|
|
314
|
+
return { error: r.error };
|
|
315
|
+
const session = sessionFrom(r.body);
|
|
316
|
+
if (!session)
|
|
317
|
+
return { error: BAD_RESPONSE };
|
|
318
|
+
return { session, name: { given: res.givenName ?? null, family: res.familyName ?? null } };
|
|
319
|
+
}
|
|
320
|
+
async function viaSystemBrowser(plugin, support, provider, base, options, bearer, fetchImpl) {
|
|
321
|
+
let pkce;
|
|
322
|
+
try {
|
|
323
|
+
pkce = await createPkcePair(options.cryptoImpl === undefined ? defaultCrypto() : options.cryptoImpl);
|
|
324
|
+
}
|
|
325
|
+
catch (err) {
|
|
326
|
+
return { error: { code: 'pkce_unavailable', message: err.message } };
|
|
327
|
+
}
|
|
328
|
+
let url = buildNativeAuthorizeUrl({
|
|
329
|
+
supabaseUrl: base,
|
|
330
|
+
provider,
|
|
331
|
+
redirectTo: support.callbackUrl,
|
|
332
|
+
pkce,
|
|
333
|
+
loginHint: options.loginHint,
|
|
334
|
+
link: bearer !== null,
|
|
335
|
+
});
|
|
336
|
+
if (bearer) {
|
|
337
|
+
// The identities endpoint needs the trial user's JWT, which a browser tab
|
|
338
|
+
// cannot carry — so ask for the provider URL here and open THAT.
|
|
339
|
+
const r = await gotrue(fetchImpl, url, { method: 'GET', headers: headers(options.anonKey, bearer) });
|
|
340
|
+
if (!r.ok)
|
|
341
|
+
return { error: r.error };
|
|
342
|
+
const providerUrl = str(r.body.url);
|
|
343
|
+
if (!providerUrl)
|
|
344
|
+
return { error: BAD_RESPONSE };
|
|
345
|
+
url = providerUrl;
|
|
346
|
+
}
|
|
347
|
+
let res;
|
|
348
|
+
try {
|
|
349
|
+
res = await plugin.oauthStart({ url });
|
|
350
|
+
}
|
|
351
|
+
catch (err) {
|
|
352
|
+
return { error: pluginError(err, 'browser_failed') };
|
|
353
|
+
}
|
|
354
|
+
if (res?.cancelled)
|
|
355
|
+
return { cancelled: true };
|
|
356
|
+
const callback = parseNativeOAuthCallback(res?.url ?? '', support.callbackUrl);
|
|
357
|
+
if (callback.kind === 'error')
|
|
358
|
+
return { error: callback.error };
|
|
359
|
+
if (callback.kind === 'invalid') {
|
|
360
|
+
return { error: { code: 'invalid_callback', message: `Sign-in came back in a form this app does not accept (${callback.reason}).` } };
|
|
361
|
+
}
|
|
362
|
+
const r = await gotrue(fetchImpl, `${base}/auth/v1/token?grant_type=pkce`, {
|
|
363
|
+
method: 'POST',
|
|
364
|
+
headers: headers(options.anonKey, null),
|
|
365
|
+
body: JSON.stringify({ auth_code: callback.code, code_verifier: pkce.verifier }),
|
|
366
|
+
});
|
|
367
|
+
if (!r.ok)
|
|
368
|
+
return { error: r.error };
|
|
369
|
+
const session = sessionFrom(r.body);
|
|
370
|
+
return session ? { session } : { error: BAD_RESPONSE };
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=nativeOAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeOAuth.js","sourceRoot":"","sources":["../src/nativeOAuth.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth.d.ts
CHANGED
|
@@ -115,6 +115,12 @@ export interface OAuthReturnError {
|
|
|
115
115
|
* in — the single worst outcome for this feature.
|
|
116
116
|
*/
|
|
117
117
|
export declare function readOAuthError(href?: string): OAuthReturnError | null;
|
|
118
|
+
/**
|
|
119
|
+
* The first OAuth failure found in a list of parameter sets (query, then
|
|
120
|
+
* fragment). Shared with `nativeOAuth.ts`, which reads the same parameters off
|
|
121
|
+
* an app's deep link — the codes are GoTrue's either way.
|
|
122
|
+
*/
|
|
123
|
+
export declare function oauthErrorFromParams(sources: URLSearchParams[]): OAuthReturnError | null;
|
|
118
124
|
/**
|
|
119
125
|
* Strip the OAuth error params from the address bar without adding a history
|
|
120
126
|
* entry, so a reload (or a second attempt) doesn't resurrect a dead error.
|