@capgo/capacitor-social-login 0.0.64 → 0.0.65
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 +10 -11
- package/android/src/main/java/ee/forgr/capacitor/social/login/FacebookProvider.java +1 -1
- package/dist/docs.json +6 -13
- package/dist/esm/definitions.d.ts +2 -3
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/web.js +2 -3
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +2 -3
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +2 -3
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/SocialLoginPlugin/AppleProvider.swift +34 -11
- package/ios/Sources/SocialLoginPlugin/FacebookProvider.swift +3 -3
- package/ios/Sources/SocialLoginPlugin/SocialLoginPlugin.swift +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -357,11 +357,11 @@ Refresh the access token
|
|
|
357
357
|
|
|
358
358
|
#### FacebookLoginResponse
|
|
359
359
|
|
|
360
|
-
| Prop
|
|
361
|
-
|
|
|
362
|
-
| **`accessToken`**
|
|
363
|
-
| **`
|
|
364
|
-
| **`
|
|
360
|
+
| Prop | Type |
|
|
361
|
+
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
362
|
+
| **`accessToken`** | <code><a href="#accesstoken">AccessToken</a> \| null</code> |
|
|
363
|
+
| **`idToken`** | <code>string \| null</code> |
|
|
364
|
+
| **`profile`** | <code>{ userID: string; email: string \| null; friendIDs: string[]; birthday: string \| null; ageRange: { min?: number; max?: number; } \| null; gender: string \| null; location: { id: string; name: string; } \| null; hometown: { id: string; name: string; } \| null; profileURL: string \| null; name: string \| null; imageURL: string \| null; }</code> |
|
|
365
365
|
|
|
366
366
|
|
|
367
367
|
#### AccessToken
|
|
@@ -390,12 +390,11 @@ Refresh the access token
|
|
|
390
390
|
|
|
391
391
|
#### AppleProviderResponse
|
|
392
392
|
|
|
393
|
-
| Prop
|
|
394
|
-
|
|
|
395
|
-
| **`accessToken`**
|
|
396
|
-
| **`
|
|
397
|
-
| **`
|
|
398
|
-
| **`authorizationCode`** | <code>string \| null</code> |
|
|
393
|
+
| Prop | Type |
|
|
394
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
395
|
+
| **`accessToken`** | <code><a href="#accesstoken">AccessToken</a> \| null</code> |
|
|
396
|
+
| **`idToken`** | <code>string \| null</code> |
|
|
397
|
+
| **`profile`** | <code>{ user: string; email: string \| null; givenName: string \| null; familyName: string \| null; }</code> |
|
|
399
398
|
|
|
400
399
|
|
|
401
400
|
#### LoginOptions
|
|
@@ -99,7 +99,7 @@ public class FacebookProvider implements SocialProvider {
|
|
|
99
99
|
result.put("accessToken", createAccessTokenObject(accessToken));
|
|
100
100
|
result.put("profile", createProfileObject(accessToken));
|
|
101
101
|
result.put(
|
|
102
|
-
"
|
|
102
|
+
"idToken",
|
|
103
103
|
loginResult.getAuthenticationToken() != null
|
|
104
104
|
? loginResult.getAuthenticationToken().getToken()
|
|
105
105
|
: null
|
package/dist/docs.json
CHANGED
|
@@ -231,18 +231,18 @@
|
|
|
231
231
|
"type": "AccessToken | null"
|
|
232
232
|
},
|
|
233
233
|
{
|
|
234
|
-
"name": "
|
|
234
|
+
"name": "idToken",
|
|
235
235
|
"tags": [],
|
|
236
236
|
"docs": "",
|
|
237
237
|
"complexTypes": [],
|
|
238
|
-
"type": "
|
|
238
|
+
"type": "string | null"
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
|
-
"name": "
|
|
241
|
+
"name": "profile",
|
|
242
242
|
"tags": [],
|
|
243
243
|
"docs": "",
|
|
244
244
|
"complexTypes": [],
|
|
245
|
-
"type": "string | null"
|
|
245
|
+
"type": "{ userID: string; email: string | null; friendIDs: string[]; birthday: string | null; ageRange: { min?: number | undefined; max?: number | undefined; } | null; gender: string | null; location: { id: string; name: string; } | null; hometown: { id: string; name: string; } | null; profileURL: string | null; name: string | null; imageURL: string | null; }"
|
|
246
246
|
}
|
|
247
247
|
]
|
|
248
248
|
},
|
|
@@ -366,13 +366,6 @@
|
|
|
366
366
|
],
|
|
367
367
|
"type": "AccessToken | null"
|
|
368
368
|
},
|
|
369
|
-
{
|
|
370
|
-
"name": "profile",
|
|
371
|
-
"tags": [],
|
|
372
|
-
"docs": "",
|
|
373
|
-
"complexTypes": [],
|
|
374
|
-
"type": "{ user: string; email: string | null; givenName: string | null; familyName: string | null; }"
|
|
375
|
-
},
|
|
376
369
|
{
|
|
377
370
|
"name": "idToken",
|
|
378
371
|
"tags": [],
|
|
@@ -381,11 +374,11 @@
|
|
|
381
374
|
"type": "string | null"
|
|
382
375
|
},
|
|
383
376
|
{
|
|
384
|
-
"name": "
|
|
377
|
+
"name": "profile",
|
|
385
378
|
"tags": [],
|
|
386
379
|
"docs": "",
|
|
387
380
|
"complexTypes": [],
|
|
388
|
-
"type": "string | null"
|
|
381
|
+
"type": "{ user: string; email: string | null; givenName: string | null; familyName: string | null; }"
|
|
389
382
|
}
|
|
390
383
|
]
|
|
391
384
|
},
|
|
@@ -116,14 +116,13 @@ export interface AppleProviderOptions {
|
|
|
116
116
|
}
|
|
117
117
|
export interface AppleProviderResponse {
|
|
118
118
|
accessToken: AccessToken | null;
|
|
119
|
+
idToken: string | null;
|
|
119
120
|
profile: {
|
|
120
121
|
user: string;
|
|
121
122
|
email: string | null;
|
|
122
123
|
givenName: string | null;
|
|
123
124
|
familyName: string | null;
|
|
124
125
|
};
|
|
125
|
-
idToken: string | null;
|
|
126
|
-
authorizationCode: string | null;
|
|
127
126
|
}
|
|
128
127
|
export interface LoginOptions {
|
|
129
128
|
/**
|
|
@@ -162,6 +161,7 @@ export interface AccessToken {
|
|
|
162
161
|
}
|
|
163
162
|
export interface FacebookLoginResponse {
|
|
164
163
|
accessToken: AccessToken | null;
|
|
164
|
+
idToken: string | null;
|
|
165
165
|
profile: {
|
|
166
166
|
userID: string;
|
|
167
167
|
email: string | null;
|
|
@@ -184,7 +184,6 @@ export interface FacebookLoginResponse {
|
|
|
184
184
|
name: string | null;
|
|
185
185
|
imageURL: string | null;
|
|
186
186
|
};
|
|
187
|
-
authenticationToken: string | null;
|
|
188
187
|
}
|
|
189
188
|
export interface AuthorizationCode {
|
|
190
189
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface InitializeOptions {\n facebook?: {\n /**\n * Facebook App ID, provided by Facebook for web, in mobile it's set in the native files\n */\n appId: string;\n /**\n * Facebook Client Token, provided by Facebook for web, in mobile it's set in the native files\n */\n clientToken: string;\n };\n\n google?: {\n /**\n * The app's client ID, found and created in the Google Developers Console.\n * For iOS.\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n iOSClientId?: string;\n /**\n * The app's server client ID, found and created in the Google Developers Console.\n * For iOS.\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n iOSServerClientId?: string;\n /**\n * The app's web client ID, found and created in the Google Developers Console.\n * For Android (and web in the future).\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n webClientId?: string;\n };\n apple?: {\n /**\n * Apple Client ID, provided by Apple for web and Android\n */\n clientId?: string;\n /**\n * Apple Redirect URL, should be your backend url that is configured in your apple app, only for android\n */\n redirectUrl?: string;\n };\n}\n\nexport interface FacebookLoginOptions {\n /**\n * Permissions\n * @description select permissions to login with\n */\n permissions: string[];\n /**\n * Is Limited Login\n * @description use limited login for Facebook IOS\n * @default false\n */\n limitedLogin?: boolean;\n /**\n * Nonce\n * @description A custom nonce to use for the login request\n */\n nonce?: string;\n}\n\nexport interface GoogleLoginOptions {\n /**\n * Specifies the scopes required for accessing Google APIs\n * The default is defined in the configuration.\n * @example [\"profile\", \"email\"]\n * @see [Google OAuth2 Scopes](https://developers.google.com/identity/protocols/oauth2/scopes)\n */\n scopes?: string[];\n /**\n * Nonce\n * @description nonce\n */\n nonce?: string;\n /**\n * Set if your application needs to refresh access tokens when the user is not present at the browser.\n * In response use `serverAuthCode` key\n *\n * @default false\n * @since 3.1.0\n * */\n grantOfflineAccess?: boolean;\n}\n\nexport interface GoogleLoginResponse {\n accessToken: AccessToken | null;\n idToken: string | null;\n profile: {\n email: string | null;\n familyName: string | null;\n givenName: string | null;\n id: string | null;\n name: string | null;\n imageUrl: string | null;\n };\n}\n\nexport interface AppleProviderOptions {\n /**\n * Scopes\n * @description An array of scopes to request during login\n * @example [\"name\", \"email\"]\n * default: [\"name\", \"email\"]\n */\n scopes?: string[];\n /**\n * Nonce\n * @description nonce\n */\n nonce?: string;\n /**\n * State\n * @description state\n */\n state?: string;\n}\n\nexport interface AppleProviderResponse {\n accessToken: AccessToken | null;\n profile: {\n user: string;\n email: string | null;\n givenName: string | null;\n familyName: string | null;\n };\n
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface InitializeOptions {\n facebook?: {\n /**\n * Facebook App ID, provided by Facebook for web, in mobile it's set in the native files\n */\n appId: string;\n /**\n * Facebook Client Token, provided by Facebook for web, in mobile it's set in the native files\n */\n clientToken: string;\n };\n\n google?: {\n /**\n * The app's client ID, found and created in the Google Developers Console.\n * For iOS.\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n iOSClientId?: string;\n /**\n * The app's server client ID, found and created in the Google Developers Console.\n * For iOS.\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n iOSServerClientId?: string;\n /**\n * The app's web client ID, found and created in the Google Developers Console.\n * For Android (and web in the future).\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n webClientId?: string;\n };\n apple?: {\n /**\n * Apple Client ID, provided by Apple for web and Android\n */\n clientId?: string;\n /**\n * Apple Redirect URL, should be your backend url that is configured in your apple app, only for android\n */\n redirectUrl?: string;\n };\n}\n\nexport interface FacebookLoginOptions {\n /**\n * Permissions\n * @description select permissions to login with\n */\n permissions: string[];\n /**\n * Is Limited Login\n * @description use limited login for Facebook IOS\n * @default false\n */\n limitedLogin?: boolean;\n /**\n * Nonce\n * @description A custom nonce to use for the login request\n */\n nonce?: string;\n}\n\nexport interface GoogleLoginOptions {\n /**\n * Specifies the scopes required for accessing Google APIs\n * The default is defined in the configuration.\n * @example [\"profile\", \"email\"]\n * @see [Google OAuth2 Scopes](https://developers.google.com/identity/protocols/oauth2/scopes)\n */\n scopes?: string[];\n /**\n * Nonce\n * @description nonce\n */\n nonce?: string;\n /**\n * Set if your application needs to refresh access tokens when the user is not present at the browser.\n * In response use `serverAuthCode` key\n *\n * @default false\n * @since 3.1.0\n * */\n grantOfflineAccess?: boolean;\n}\n\nexport interface GoogleLoginResponse {\n accessToken: AccessToken | null;\n idToken: string | null;\n profile: {\n email: string | null;\n familyName: string | null;\n givenName: string | null;\n id: string | null;\n name: string | null;\n imageUrl: string | null;\n };\n}\n\nexport interface AppleProviderOptions {\n /**\n * Scopes\n * @description An array of scopes to request during login\n * @example [\"name\", \"email\"]\n * default: [\"name\", \"email\"]\n */\n scopes?: string[];\n /**\n * Nonce\n * @description nonce\n */\n nonce?: string;\n /**\n * State\n * @description state\n */\n state?: string;\n}\n\nexport interface AppleProviderResponse {\n accessToken: AccessToken | null;\n idToken: string | null;\n profile: {\n user: string;\n email: string | null;\n givenName: string | null;\n familyName: string | null;\n };\n}\n\nexport interface LoginOptions {\n /**\n * Provider\n * @description select provider to login with\n */\n provider: \"facebook\" | \"google\" | \"apple\" | \"twitter\";\n /**\n * Options\n * @description payload to login with\n */\n options: FacebookLoginOptions | GoogleLoginOptions | AppleProviderOptions;\n}\n\nexport interface LoginResult {\n /**\n * Provider\n * @description select provider to login with\n */\n provider: \"facebook\" | \"google\" | \"apple\" | \"twitter\";\n /**\n * Payload\n * @description payload to login with\n */\n result: FacebookLoginResponse | GoogleLoginResponse | AppleProviderResponse;\n}\n\nexport interface AccessToken {\n applicationId?: string;\n declinedPermissions?: string[];\n expires?: string;\n isExpired?: boolean;\n lastRefresh?: string;\n permissions?: string[];\n token: string;\n refreshToken?: string;\n userId?: string;\n}\n\nexport interface FacebookLoginResponse {\n accessToken: AccessToken | null;\n idToken: string | null;\n profile: {\n userID: string;\n email: string | null;\n friendIDs: string[];\n birthday: string | null;\n ageRange: { min?: number; max?: number } | null;\n gender: string | null;\n location: { id: string; name: string } | null;\n hometown: { id: string; name: string } | null;\n profileURL: string | null;\n name: string | null;\n imageURL: string | null;\n };\n}\n\nexport interface AuthorizationCode {\n /**\n * Jwt\n * @description A JSON web token\n */\n jwt: string;\n}\n\nexport interface AuthorizationCodeOptions {\n /**\n * Provider\n * @description Provider for the authorization code\n */\n provider: \"apple\" | \"google\" | \"facebook\";\n}\n\nexport interface isLoggedInOptions {\n /**\n * Provider\n * @description Provider for the isLoggedIn\n */\n provider: \"apple\" | \"google\" | \"facebook\";\n}\n\nexport interface SocialLoginPlugin {\n /**\n * Initialize the plugin\n * @description initialize the plugin with the required options\n */\n initialize(options: InitializeOptions): Promise<void>;\n /**\n * Login with the selected provider\n * @description login with the selected provider\n */\n login(options: LoginOptions): Promise<LoginResult>;\n /**\n * Logout\n * @description logout the user\n */\n logout(options: { provider: \"apple\" | \"google\" | \"facebook\" }): Promise<void>;\n /**\n * IsLoggedIn\n * @description logout the user\n */\n isLoggedIn(options: isLoggedInOptions): Promise<{ isLoggedIn: boolean }>;\n\n /**\n * Get the current access token\n * @description get the current access token\n */\n getAuthorizationCode(\n options: AuthorizationCodeOptions,\n ): Promise<AuthorizationCode>;\n /**\n * Refresh the access token\n * @description refresh the access token\n */\n refresh(options: LoginOptions): Promise<void>;\n}\n"]}
|
package/dist/esm/web.js
CHANGED
|
@@ -235,10 +235,9 @@ export class SocialLoginWeb extends WebPlugin {
|
|
|
235
235
|
familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,
|
|
236
236
|
},
|
|
237
237
|
accessToken: {
|
|
238
|
-
token:
|
|
238
|
+
token: res.authorization.code, // TODO: to fix and find the correct token
|
|
239
239
|
},
|
|
240
240
|
idToken: res.authorization.id_token || null,
|
|
241
|
-
authorizationCode: res.authorization.code || null,
|
|
242
241
|
};
|
|
243
242
|
resolve({ provider: "apple", result });
|
|
244
243
|
})
|
|
@@ -320,7 +319,7 @@ export class SocialLoginWeb extends WebPlugin {
|
|
|
320
319
|
hometown: null,
|
|
321
320
|
profileURL: null,
|
|
322
321
|
},
|
|
323
|
-
|
|
322
|
+
idToken: null,
|
|
324
323
|
};
|
|
325
324
|
resolve({ provider: "facebook", result });
|
|
326
325
|
});
|
package/dist/esm/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from \"@capacitor/core\";\n\nimport type {\n SocialLoginPlugin,\n InitializeOptions,\n LoginOptions,\n LoginResult,\n AuthorizationCode,\n GoogleLoginResponse,\n AppleProviderResponse,\n isLoggedInOptions,\n AuthorizationCodeOptions,\n FacebookLoginOptions,\n FacebookLoginResponse,\n} from \"./definitions\";\n\n// Add this declaration at the top of the file\ndeclare const google: {\n accounts: {\n id: {\n initialize(config: {\n client_id: string;\n callback: (response: any) => void;\n auto_select?: boolean;\n }): void;\n prompt(callback: (notification: any) => void): void;\n };\n oauth2: {\n initTokenClient(config: {\n client_id: string;\n callback: (response: any) => void;\n auto_select?: boolean;\n scope: string\n }): {\n requestAccessToken(): void;\n };\n }\n };\n};\n\ndeclare const AppleID: any;\n\ndeclare const FB: {\n init(options: any): void;\n login(\n callback: (response: {\n status: string;\n authResponse: { accessToken: string; userID: string };\n }) => void,\n options?: { scope: string },\n ): void;\n logout(callback: () => void): void;\n api(\n path: string,\n params: { fields: string },\n callback: (response: any) => void,\n ): void;\n getLoginStatus(\n callback: (response: {\n status: string;\n authResponse?: { accessToken: string };\n }) => void,\n ): void;\n};\n\nexport class SocialLoginWeb extends WebPlugin implements SocialLoginPlugin {\n private googleClientId: string | null = null;\n private appleClientId: string | null = null;\n private googleScriptLoaded = false;\n private appleScriptLoaded = false;\n private appleScriptUrl =\n \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n private facebookAppId: string | null = null;\n private facebookScriptLoaded = false;\n\n async initialize(options: InitializeOptions): Promise<void> {\n if (options.google?.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if (options.apple?.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if (options.facebook?.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n\n async login(options: LoginOptions): Promise<LoginResult> {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n } else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n } else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options as FacebookLoginOptions);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n\n async logout(options: {\n provider: \"apple\" | \"google\" | \"facebook\";\n }): Promise<void> {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\n \"Google logout: Token should be revoked on the client side if stored\",\n );\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\n \"Apple logout: Session should be managed on the client side\",\n );\n break;\n case \"facebook\":\n return new Promise<void>((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n\n async isLoggedIn(\n options: isLoggedInOptions,\n ): Promise<{ isLoggedIn: boolean }> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(\n `isLoggedIn for ${options.provider} is not implemented`,\n );\n }\n }\n\n async getAuthorizationCode(\n options: AuthorizationCodeOptions,\n ): Promise<AuthorizationCode> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n if (response.status === \"connected\") {\n resolve({ jwt: response.authResponse?.accessToken || \"\" });\n } else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(\n `getAuthorizationCode for ${options.provider} is not implemented`,\n );\n }\n }\n\n async refresh(options: LoginOptions): Promise<void> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options as FacebookLoginOptions);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n\n private async loginWithGoogle(options: any): Promise<LoginResult> {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n\n const scopes = options.scopes || [\"email\", \"profile\"];\n\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId!,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n } else {\n const payload = this.parseJwt(response.credential);\n const result: GoogleLoginResponse = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n } else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n\n private parseJwt(token: string) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"),\n );\n return JSON.parse(jsonPayload);\n }\n\n private async loadGoogleScript(): Promise<void> {\n if (this.googleScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async loginWithApple(options: any): Promise<LoginResult> {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n\n return new Promise((resolve, reject) => {\n AppleID.auth.init({\n clientId: this.appleClientId!,\n scope: options.scopes?.join(\" \") || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n\n AppleID.auth\n .signIn()\n .then((res: any) => {\n const result: AppleProviderResponse = {\n profile: {\n user: res.user?.name?.firstName\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: res.user?.email || null,\n givenName: res.user?.name?.firstName || null,\n familyName: res.user?.name?.lastName || null,\n },\n accessToken: {\n token: \"\", // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n authorizationCode: res.authorization.code || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error: any) => {\n reject(error);\n });\n });\n }\n\n private async loadAppleScript(): Promise<void> {\n if (this.appleScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async getGoogleUser(): Promise<any> {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId!,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n\n private async loadFacebookScript(): Promise<void> {\n if (this.facebookScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async loginWithFacebook(\n options: FacebookLoginOptions,\n ): Promise<LoginResult> {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n\n return new Promise((resolve, reject) => {\n FB.login(\n (response) => {\n if (response.status === \"connected\") {\n FB.api(\n \"/me\",\n { fields: \"id,name,email,picture\" },\n (userInfo: any) => {\n const result: FacebookLoginResponse = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: userInfo.picture?.data?.url || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n authenticationToken: null,\n };\n resolve({ provider: \"facebook\", result });\n },\n );\n } else {\n reject(new Error(\"Facebook login failed\"));\n }\n },\n { scope: options.permissions.join(\",\") },\n );\n });\n }\n\n private async fallbackToTraditionalOAuth(scopes: string[]): Promise<LoginResult> {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId!,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n } else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result: GoogleLoginResponse = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from \"@capacitor/core\";\n\nimport type {\n SocialLoginPlugin,\n InitializeOptions,\n LoginOptions,\n LoginResult,\n AuthorizationCode,\n GoogleLoginResponse,\n AppleProviderResponse,\n isLoggedInOptions,\n AuthorizationCodeOptions,\n FacebookLoginOptions,\n FacebookLoginResponse,\n} from \"./definitions\";\n\n// Add this declaration at the top of the file\ndeclare const google: {\n accounts: {\n id: {\n initialize(config: {\n client_id: string;\n callback: (response: any) => void;\n auto_select?: boolean;\n }): void;\n prompt(callback: (notification: any) => void): void;\n };\n oauth2: {\n initTokenClient(config: {\n client_id: string;\n callback: (response: any) => void;\n auto_select?: boolean;\n scope: string\n }): {\n requestAccessToken(): void;\n };\n }\n };\n};\n\ndeclare const AppleID: any;\n\ndeclare const FB: {\n init(options: any): void;\n login(\n callback: (response: {\n status: string;\n authResponse: { accessToken: string; userID: string };\n }) => void,\n options?: { scope: string },\n ): void;\n logout(callback: () => void): void;\n api(\n path: string,\n params: { fields: string },\n callback: (response: any) => void,\n ): void;\n getLoginStatus(\n callback: (response: {\n status: string;\n authResponse?: { accessToken: string };\n }) => void,\n ): void;\n};\n\nexport class SocialLoginWeb extends WebPlugin implements SocialLoginPlugin {\n private googleClientId: string | null = null;\n private appleClientId: string | null = null;\n private googleScriptLoaded = false;\n private appleScriptLoaded = false;\n private appleScriptUrl =\n \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n private facebookAppId: string | null = null;\n private facebookScriptLoaded = false;\n\n async initialize(options: InitializeOptions): Promise<void> {\n if (options.google?.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if (options.apple?.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if (options.facebook?.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n\n async login(options: LoginOptions): Promise<LoginResult> {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n } else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n } else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options as FacebookLoginOptions);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n\n async logout(options: {\n provider: \"apple\" | \"google\" | \"facebook\";\n }): Promise<void> {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\n \"Google logout: Token should be revoked on the client side if stored\",\n );\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\n \"Apple logout: Session should be managed on the client side\",\n );\n break;\n case \"facebook\":\n return new Promise<void>((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n\n async isLoggedIn(\n options: isLoggedInOptions,\n ): Promise<{ isLoggedIn: boolean }> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(\n `isLoggedIn for ${options.provider} is not implemented`,\n );\n }\n }\n\n async getAuthorizationCode(\n options: AuthorizationCodeOptions,\n ): Promise<AuthorizationCode> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n if (response.status === \"connected\") {\n resolve({ jwt: response.authResponse?.accessToken || \"\" });\n } else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(\n `getAuthorizationCode for ${options.provider} is not implemented`,\n );\n }\n }\n\n async refresh(options: LoginOptions): Promise<void> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options as FacebookLoginOptions);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n\n private async loginWithGoogle(options: any): Promise<LoginResult> {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n\n const scopes = options.scopes || [\"email\", \"profile\"];\n\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId!,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n } else {\n const payload = this.parseJwt(response.credential);\n const result: GoogleLoginResponse = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n } else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n\n private parseJwt(token: string) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"),\n );\n return JSON.parse(jsonPayload);\n }\n\n private async loadGoogleScript(): Promise<void> {\n if (this.googleScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async loginWithApple(options: any): Promise<LoginResult> {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n\n return new Promise((resolve, reject) => {\n AppleID.auth.init({\n clientId: this.appleClientId!,\n scope: options.scopes?.join(\" \") || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n\n AppleID.auth\n .signIn()\n .then((res: any) => {\n const result: AppleProviderResponse = {\n profile: {\n user: res.user?.name?.firstName\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: res.user?.email || null,\n givenName: res.user?.name?.firstName || null,\n familyName: res.user?.name?.lastName || null,\n },\n accessToken: {\n token: res.authorization.code , // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error: any) => {\n reject(error);\n });\n });\n }\n\n private async loadAppleScript(): Promise<void> {\n if (this.appleScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async getGoogleUser(): Promise<any> {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId!,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n\n private async loadFacebookScript(): Promise<void> {\n if (this.facebookScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async loginWithFacebook(\n options: FacebookLoginOptions,\n ): Promise<LoginResult> {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n\n return new Promise((resolve, reject) => {\n FB.login(\n (response) => {\n if (response.status === \"connected\") {\n FB.api(\n \"/me\",\n { fields: \"id,name,email,picture\" },\n (userInfo: any) => {\n const result: FacebookLoginResponse = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: userInfo.picture?.data?.url || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n idToken: null,\n };\n resolve({ provider: \"facebook\", result });\n },\n );\n } else {\n reject(new Error(\"Facebook login failed\"));\n }\n },\n { scope: options.permissions.join(\",\") },\n );\n });\n }\n\n private async fallbackToTraditionalOAuth(scopes: string[]): Promise<LoginResult> {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId!,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n } else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result: GoogleLoginResponse = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n"]}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -242,10 +242,9 @@ class SocialLoginWeb extends core.WebPlugin {
|
|
|
242
242
|
familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,
|
|
243
243
|
},
|
|
244
244
|
accessToken: {
|
|
245
|
-
token:
|
|
245
|
+
token: res.authorization.code, // TODO: to fix and find the correct token
|
|
246
246
|
},
|
|
247
247
|
idToken: res.authorization.id_token || null,
|
|
248
|
-
authorizationCode: res.authorization.code || null,
|
|
249
248
|
};
|
|
250
249
|
resolve({ provider: "apple", result });
|
|
251
250
|
})
|
|
@@ -327,7 +326,7 @@ class SocialLoginWeb extends core.WebPlugin {
|
|
|
327
326
|
hometown: null,
|
|
328
327
|
profileURL: null,
|
|
329
328
|
},
|
|
330
|
-
|
|
329
|
+
idToken: null,
|
|
331
330
|
};
|
|
332
331
|
resolve({ provider: "facebook", result });
|
|
333
332
|
});
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst SocialLogin = registerPlugin(\"SocialLogin\", {\n web: () => import(\"./web\").then((m) => new m.SocialLoginWeb()),\n});\nexport * from \"./definitions\";\nexport { SocialLogin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from \"@capacitor/core\";\nexport class SocialLoginWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.googleClientId = null;\n this.appleClientId = null;\n this.googleScriptLoaded = false;\n this.appleScriptLoaded = false;\n this.appleScriptUrl = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n this.facebookAppId = null;\n this.facebookScriptLoaded = false;\n }\n async initialize(options) {\n var _a, _b, _c;\n if ((_a = options.google) === null || _a === void 0 ? void 0 : _a.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if ((_b = options.apple) === null || _b === void 0 ? void 0 : _b.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if ((_c = options.facebook) === null || _c === void 0 ? void 0 : _c.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n async login(options) {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n }\n else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n }\n else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n async logout(options) {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\"Google logout: Token should be revoked on the client side if stored\");\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\"Apple logout: Session should be managed on the client side\");\n break;\n case \"facebook\":\n return new Promise((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n async isLoggedIn(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(`isLoggedIn for ${options.provider} is not implemented`);\n }\n }\n async getAuthorizationCode(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n var _a;\n if (response.status === \"connected\") {\n resolve({ jwt: ((_a = response.authResponse) === null || _a === void 0 ? void 0 : _a.accessToken) || \"\" });\n }\n else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(`getAuthorizationCode for ${options.provider} is not implemented`);\n }\n }\n async refresh(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n async loginWithGoogle(options) {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n const scopes = options.scopes || [\"email\", \"profile\"];\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n }\n else {\n const payload = this.parseJwt(response.credential);\n const result = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n }\n else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"));\n return JSON.parse(jsonPayload);\n }\n async loadGoogleScript() {\n if (this.googleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithApple(options) {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n return new Promise((resolve, reject) => {\n var _a;\n AppleID.auth.init({\n clientId: this.appleClientId,\n scope: ((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n AppleID.auth\n .signIn()\n .then((res) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = {\n profile: {\n user: ((_b = (_a = res.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.firstName)\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: ((_c = res.user) === null || _c === void 0 ? void 0 : _c.email) || null,\n givenName: ((_e = (_d = res.user) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.firstName) || null,\n familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,\n },\n accessToken: {\n token: \"\", // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n authorizationCode: res.authorization.code || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n async loadAppleScript() {\n if (this.appleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async getGoogleUser() {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n async loadFacebookScript() {\n if (this.facebookScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithFacebook(options) {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n return new Promise((resolve, reject) => {\n FB.login((response) => {\n if (response.status === \"connected\") {\n FB.api(\"/me\", { fields: \"id,name,email,picture\" }, (userInfo) => {\n var _a, _b;\n const result = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: ((_b = (_a = userInfo.picture) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.url) || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n authenticationToken: null,\n };\n resolve({ provider: \"facebook\", result });\n });\n }\n else {\n reject(new Error(\"Facebook login failed\"));\n }\n }, { scope: options.permissions.join(\",\") });\n });\n }\n async fallbackToTraditionalOAuth(scopes) {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n }\n else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst SocialLogin = registerPlugin(\"SocialLogin\", {\n web: () => import(\"./web\").then((m) => new m.SocialLoginWeb()),\n});\nexport * from \"./definitions\";\nexport { SocialLogin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from \"@capacitor/core\";\nexport class SocialLoginWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.googleClientId = null;\n this.appleClientId = null;\n this.googleScriptLoaded = false;\n this.appleScriptLoaded = false;\n this.appleScriptUrl = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n this.facebookAppId = null;\n this.facebookScriptLoaded = false;\n }\n async initialize(options) {\n var _a, _b, _c;\n if ((_a = options.google) === null || _a === void 0 ? void 0 : _a.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if ((_b = options.apple) === null || _b === void 0 ? void 0 : _b.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if ((_c = options.facebook) === null || _c === void 0 ? void 0 : _c.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n async login(options) {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n }\n else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n }\n else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n async logout(options) {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\"Google logout: Token should be revoked on the client side if stored\");\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\"Apple logout: Session should be managed on the client side\");\n break;\n case \"facebook\":\n return new Promise((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n async isLoggedIn(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(`isLoggedIn for ${options.provider} is not implemented`);\n }\n }\n async getAuthorizationCode(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n var _a;\n if (response.status === \"connected\") {\n resolve({ jwt: ((_a = response.authResponse) === null || _a === void 0 ? void 0 : _a.accessToken) || \"\" });\n }\n else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(`getAuthorizationCode for ${options.provider} is not implemented`);\n }\n }\n async refresh(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n async loginWithGoogle(options) {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n const scopes = options.scopes || [\"email\", \"profile\"];\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n }\n else {\n const payload = this.parseJwt(response.credential);\n const result = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n }\n else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"));\n return JSON.parse(jsonPayload);\n }\n async loadGoogleScript() {\n if (this.googleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithApple(options) {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n return new Promise((resolve, reject) => {\n var _a;\n AppleID.auth.init({\n clientId: this.appleClientId,\n scope: ((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n AppleID.auth\n .signIn()\n .then((res) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = {\n profile: {\n user: ((_b = (_a = res.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.firstName)\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: ((_c = res.user) === null || _c === void 0 ? void 0 : _c.email) || null,\n givenName: ((_e = (_d = res.user) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.firstName) || null,\n familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,\n },\n accessToken: {\n token: res.authorization.code, // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n async loadAppleScript() {\n if (this.appleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async getGoogleUser() {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n async loadFacebookScript() {\n if (this.facebookScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithFacebook(options) {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n return new Promise((resolve, reject) => {\n FB.login((response) => {\n if (response.status === \"connected\") {\n FB.api(\"/me\", { fields: \"id,name,email,picture\" }, (userInfo) => {\n var _a, _b;\n const result = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: ((_b = (_a = userInfo.picture) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.url) || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n idToken: null,\n };\n resolve({ provider: \"facebook\", result });\n });\n }\n else {\n reject(new Error(\"Facebook login failed\"));\n }\n }, { scope: options.permissions.join(\",\") });\n });\n }\n async fallbackToTraditionalOAuth(scopes) {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n }\n else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
package/dist/plugin.js
CHANGED
|
@@ -241,10 +241,9 @@ var capacitorCapacitorUpdater = (function (exports, core) {
|
|
|
241
241
|
familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,
|
|
242
242
|
},
|
|
243
243
|
accessToken: {
|
|
244
|
-
token:
|
|
244
|
+
token: res.authorization.code, // TODO: to fix and find the correct token
|
|
245
245
|
},
|
|
246
246
|
idToken: res.authorization.id_token || null,
|
|
247
|
-
authorizationCode: res.authorization.code || null,
|
|
248
247
|
};
|
|
249
248
|
resolve({ provider: "apple", result });
|
|
250
249
|
})
|
|
@@ -326,7 +325,7 @@ var capacitorCapacitorUpdater = (function (exports, core) {
|
|
|
326
325
|
hometown: null,
|
|
327
326
|
profileURL: null,
|
|
328
327
|
},
|
|
329
|
-
|
|
328
|
+
idToken: null,
|
|
330
329
|
};
|
|
331
330
|
resolve({ provider: "facebook", result });
|
|
332
331
|
});
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst SocialLogin = registerPlugin(\"SocialLogin\", {\n web: () => import(\"./web\").then((m) => new m.SocialLoginWeb()),\n});\nexport * from \"./definitions\";\nexport { SocialLogin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from \"@capacitor/core\";\nexport class SocialLoginWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.googleClientId = null;\n this.appleClientId = null;\n this.googleScriptLoaded = false;\n this.appleScriptLoaded = false;\n this.appleScriptUrl = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n this.facebookAppId = null;\n this.facebookScriptLoaded = false;\n }\n async initialize(options) {\n var _a, _b, _c;\n if ((_a = options.google) === null || _a === void 0 ? void 0 : _a.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if ((_b = options.apple) === null || _b === void 0 ? void 0 : _b.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if ((_c = options.facebook) === null || _c === void 0 ? void 0 : _c.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n async login(options) {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n }\n else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n }\n else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n async logout(options) {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\"Google logout: Token should be revoked on the client side if stored\");\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\"Apple logout: Session should be managed on the client side\");\n break;\n case \"facebook\":\n return new Promise((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n async isLoggedIn(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(`isLoggedIn for ${options.provider} is not implemented`);\n }\n }\n async getAuthorizationCode(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n var _a;\n if (response.status === \"connected\") {\n resolve({ jwt: ((_a = response.authResponse) === null || _a === void 0 ? void 0 : _a.accessToken) || \"\" });\n }\n else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(`getAuthorizationCode for ${options.provider} is not implemented`);\n }\n }\n async refresh(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n async loginWithGoogle(options) {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n const scopes = options.scopes || [\"email\", \"profile\"];\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n }\n else {\n const payload = this.parseJwt(response.credential);\n const result = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n }\n else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"));\n return JSON.parse(jsonPayload);\n }\n async loadGoogleScript() {\n if (this.googleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithApple(options) {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n return new Promise((resolve, reject) => {\n var _a;\n AppleID.auth.init({\n clientId: this.appleClientId,\n scope: ((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n AppleID.auth\n .signIn()\n .then((res) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = {\n profile: {\n user: ((_b = (_a = res.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.firstName)\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: ((_c = res.user) === null || _c === void 0 ? void 0 : _c.email) || null,\n givenName: ((_e = (_d = res.user) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.firstName) || null,\n familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,\n },\n accessToken: {\n token: \"\", // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n authorizationCode: res.authorization.code || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n async loadAppleScript() {\n if (this.appleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async getGoogleUser() {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n async loadFacebookScript() {\n if (this.facebookScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithFacebook(options) {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n return new Promise((resolve, reject) => {\n FB.login((response) => {\n if (response.status === \"connected\") {\n FB.api(\"/me\", { fields: \"id,name,email,picture\" }, (userInfo) => {\n var _a, _b;\n const result = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: ((_b = (_a = userInfo.picture) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.url) || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n authenticationToken: null,\n };\n resolve({ provider: \"facebook\", result });\n });\n }\n else {\n reject(new Error(\"Facebook login failed\"));\n }\n }, { scope: options.permissions.join(\",\") });\n });\n }\n async fallbackToTraditionalOAuth(scopes) {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n }\n else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst SocialLogin = registerPlugin(\"SocialLogin\", {\n web: () => import(\"./web\").then((m) => new m.SocialLoginWeb()),\n});\nexport * from \"./definitions\";\nexport { SocialLogin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from \"@capacitor/core\";\nexport class SocialLoginWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.googleClientId = null;\n this.appleClientId = null;\n this.googleScriptLoaded = false;\n this.appleScriptLoaded = false;\n this.appleScriptUrl = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n this.facebookAppId = null;\n this.facebookScriptLoaded = false;\n }\n async initialize(options) {\n var _a, _b, _c;\n if ((_a = options.google) === null || _a === void 0 ? void 0 : _a.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if ((_b = options.apple) === null || _b === void 0 ? void 0 : _b.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if ((_c = options.facebook) === null || _c === void 0 ? void 0 : _c.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n async login(options) {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n }\n else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n }\n else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n async logout(options) {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\"Google logout: Token should be revoked on the client side if stored\");\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\"Apple logout: Session should be managed on the client side\");\n break;\n case \"facebook\":\n return new Promise((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n async isLoggedIn(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(`isLoggedIn for ${options.provider} is not implemented`);\n }\n }\n async getAuthorizationCode(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n var _a;\n if (response.status === \"connected\") {\n resolve({ jwt: ((_a = response.authResponse) === null || _a === void 0 ? void 0 : _a.accessToken) || \"\" });\n }\n else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(`getAuthorizationCode for ${options.provider} is not implemented`);\n }\n }\n async refresh(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n async loginWithGoogle(options) {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n const scopes = options.scopes || [\"email\", \"profile\"];\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n }\n else {\n const payload = this.parseJwt(response.credential);\n const result = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n }\n else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"));\n return JSON.parse(jsonPayload);\n }\n async loadGoogleScript() {\n if (this.googleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithApple(options) {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n return new Promise((resolve, reject) => {\n var _a;\n AppleID.auth.init({\n clientId: this.appleClientId,\n scope: ((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n AppleID.auth\n .signIn()\n .then((res) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = {\n profile: {\n user: ((_b = (_a = res.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.firstName)\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: ((_c = res.user) === null || _c === void 0 ? void 0 : _c.email) || null,\n givenName: ((_e = (_d = res.user) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.firstName) || null,\n familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,\n },\n accessToken: {\n token: res.authorization.code, // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n async loadAppleScript() {\n if (this.appleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async getGoogleUser() {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n async loadFacebookScript() {\n if (this.facebookScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithFacebook(options) {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n return new Promise((resolve, reject) => {\n FB.login((response) => {\n if (response.status === \"connected\") {\n FB.api(\"/me\", { fields: \"id,name,email,picture\" }, (userInfo) => {\n var _a, _b;\n const result = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: ((_b = (_a = userInfo.picture) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.url) || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n idToken: null,\n };\n resolve({ provider: \"facebook\", result });\n });\n }\n else {\n reject(new Error(\"Facebook login failed\"));\n }\n }, { scope: options.permissions.join(\",\") });\n });\n }\n async fallbackToTraditionalOAuth(scopes) {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n }\n else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
import AuthenticationServices
|
|
3
3
|
import Alamofire
|
|
4
|
+
import UIKit
|
|
4
5
|
|
|
5
6
|
struct AppleProviderResponse: Codable {
|
|
6
7
|
let accessToken: AccessTokenApple?
|
|
@@ -18,7 +19,14 @@ struct AppleProfile: Codable {
|
|
|
18
19
|
|
|
19
20
|
struct AccessTokenApple: Codable {
|
|
20
21
|
let token: String
|
|
21
|
-
|
|
22
|
+
let expiresIn: Int?
|
|
23
|
+
let refreshToken: String?
|
|
24
|
+
|
|
25
|
+
init(token: String, expiresIn: Int? = nil, refreshToken: String? = nil) {
|
|
26
|
+
self.token = token
|
|
27
|
+
self.expiresIn = expiresIn
|
|
28
|
+
self.refreshToken = refreshToken
|
|
29
|
+
}
|
|
22
30
|
}
|
|
23
31
|
|
|
24
32
|
// Define the Decodable structs for the response
|
|
@@ -226,9 +234,16 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
|
|
|
226
234
|
let fullName = appleIDCredential.fullName
|
|
227
235
|
let email = appleIDCredential.email
|
|
228
236
|
|
|
237
|
+
// Create proper access token
|
|
238
|
+
let accessToken = AccessTokenApple(
|
|
239
|
+
token: String(data: appleIDCredential.authorizationCode ?? Data(), encoding: .utf8) ?? "",
|
|
240
|
+
expiresIn: 3600, // Default 1 hour
|
|
241
|
+
refreshToken: nil // Apple doesn't provide refresh token directly
|
|
242
|
+
)
|
|
243
|
+
|
|
229
244
|
retrieveUserInfo { savedUserInfo in
|
|
230
245
|
let response = AppleProviderResponse(
|
|
231
|
-
accessToken:
|
|
246
|
+
accessToken: accessToken,
|
|
232
247
|
profile: AppleProfile(
|
|
233
248
|
user: userIdentifier,
|
|
234
249
|
email: email ?? savedUserInfo?.profile.email,
|
|
@@ -356,15 +371,19 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
|
|
|
356
371
|
do {
|
|
357
372
|
try self.persistState(idToken: idToken, refreshToken: refreshToken, accessToken: accessToken)
|
|
358
373
|
let appleResponse = AppleProviderResponse(
|
|
359
|
-
accessToken: AccessTokenApple(
|
|
374
|
+
accessToken: AccessTokenApple(
|
|
375
|
+
token: accessToken,
|
|
376
|
+
expiresIn: 3600, // Default 1 hour
|
|
377
|
+
refreshToken: refreshToken
|
|
378
|
+
),
|
|
360
379
|
profile: AppleProfile(
|
|
361
|
-
user: "",
|
|
362
|
-
email: nil,
|
|
363
|
-
givenName: nil,
|
|
364
|
-
familyName: nil
|
|
380
|
+
user: "",
|
|
381
|
+
email: nil,
|
|
382
|
+
givenName: nil,
|
|
383
|
+
familyName: nil
|
|
365
384
|
),
|
|
366
385
|
idToken: idToken,
|
|
367
|
-
authorizationCode: ""
|
|
386
|
+
authorizationCode: ""
|
|
368
387
|
)
|
|
369
388
|
completion(.success(appleResponse))
|
|
370
389
|
return
|
|
@@ -376,9 +395,13 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
|
|
|
376
395
|
|
|
377
396
|
if (pathComponents.filter { $0.name == "ios_no_code" }).first != nil {
|
|
378
397
|
let appleResponse = AppleProviderResponse(
|
|
379
|
-
accessToken: AccessTokenApple(
|
|
398
|
+
accessToken: AccessTokenApple(
|
|
399
|
+
token: "",
|
|
400
|
+
expiresIn: 3600, // Default 1 hour
|
|
401
|
+
refreshToken: nil
|
|
402
|
+
),
|
|
380
403
|
profile: AppleProfile(
|
|
381
|
-
user: "",
|
|
404
|
+
user: "",
|
|
382
405
|
email: email,
|
|
383
406
|
givenName: firstName,
|
|
384
407
|
familyName: lastName
|
|
@@ -480,7 +503,7 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
|
|
|
480
503
|
let userId = userData["sub"] as? String {
|
|
481
504
|
// Create the response object
|
|
482
505
|
let appleResponse = AppleProviderResponse(
|
|
483
|
-
accessToken: AccessTokenApple(token: accessToken),
|
|
506
|
+
accessToken: AccessTokenApple(token: accessToken, expiresIn: expiresIn, refreshToken: refreshToken),
|
|
484
507
|
profile: AppleProfile(
|
|
485
508
|
user: userId,
|
|
486
509
|
email: nil, // You might want to extract this from the idToken if available
|
|
@@ -9,7 +9,7 @@ import FacebookLogin
|
|
|
9
9
|
struct FacebookLoginResponse {
|
|
10
10
|
let accessToken: [String: Any]
|
|
11
11
|
let profile: [String: Any]
|
|
12
|
-
let
|
|
12
|
+
let idToken: String?
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
class FacebookProvider {
|
|
@@ -88,7 +88,7 @@ class FacebookProvider {
|
|
|
88
88
|
"isExpired": AccessToken.current?.isExpired ?? false,
|
|
89
89
|
"refreshDate": AccessToken.current?.refreshDate ?? Date(),
|
|
90
90
|
"permissions": AccessToken.current?.permissions.map { $0.name } ?? [],
|
|
91
|
-
"
|
|
91
|
+
"token": AccessToken.current?.tokenString ?? "",
|
|
92
92
|
"userID": AccessToken.current?.userID ?? ""
|
|
93
93
|
]
|
|
94
94
|
|
|
@@ -109,7 +109,7 @@ class FacebookProvider {
|
|
|
109
109
|
return FacebookLoginResponse(
|
|
110
110
|
accessToken: accessToken,
|
|
111
111
|
profile: profileData,
|
|
112
|
-
|
|
112
|
+
idToken: authToken?.tokenString
|
|
113
113
|
)
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -304,7 +304,7 @@ public class SocialLoginPlugin: CAPPlugin, CAPBridgedPlugin {
|
|
|
304
304
|
let facebookResult: [String: Any] = [
|
|
305
305
|
"accessToken": facebookResponse.accessToken,
|
|
306
306
|
"profile": facebookResponse.profile,
|
|
307
|
-
"
|
|
307
|
+
"idToken": facebookResponse.idToken ?? ""
|
|
308
308
|
]
|
|
309
309
|
call.resolve([
|
|
310
310
|
"provider": "facebook",
|