{"_id":"@bobbyg603/capacitor-social-login","_rev":"4-6fc0e72e3b8fb4a91be43567eeeb4b86","name":"@bobbyg603/capacitor-social-login","dist-tags":{"latest":"1.2.6"},"versions":{"1.1.0-alpha.0":{"name":"@bobbyg603/capacitor-social-login","version":"1.1.0-alpha.0","keywords":["capacitor","plugin","native","social","login","google","facebook","apple","twitter","sso","oauth","oauth2"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MIT","_id":"@bobbyg603/capacitor-social-login@1.1.0-alpha.0","maintainers":[{"name":"bobbyg603","email":"bobbyg603@gmail.com"}],"homepage":"https://github.com/Cap-go/capacitor-social-login#readme","bugs":{"url":"https://github.com/Cap-go/capacitor-social-login/issues"},"dist":{"shasum":"ab5babad21c77521b6d1be43bfd47d559f0f36f3","tarball":"https://registry.npmjs.org/@bobbyg603/capacitor-social-login/-/capacitor-social-login-1.1.0-alpha.0.tgz","fileCount":37,"integrity":"sha512-Mdg+H+tSwa1Xxt4v4QtZzkxxMkKA9W29oiueOYXyjUC3xRTdYcJzxGjHSWnmgcaCk2kfBICPoO2/h6jrWXng8w==","signatures":[{"sig":"MEUCIQDnGw3q/p1Zy5hxclDUJ41XVW00ceTyf/t4W0aZ+WEwvgIgGREKEYeX0ltfbqdUltaSpsUGHBCaRbHN22Q+a6GZJtM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425697},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"c9d35d8cb4f93451163c74a2eb2f6862a4eca46d","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --autocorrect --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SocialLoginPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier --config .prettierrc.js \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorSocialLogin -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"bobbyg603","email":"bobbyg603@gmail.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-social-login.git","type":"git"},"_npmVersion":"10.9.0","description":"All social logins in one plugin","directories":{},"_nodeVersion":"22.11.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.0","devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"5.7.2","@types/node":"^22.10.1","@capacitor/cli":"^7.0.0","@capacitor/ios":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/android":"^7.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.6.6","@ionic/prettier-config":"^4.0.0","@types/google.accounts":"^0.0.15","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-social-login_1.1.0-alpha.0_1738329819803_0.623581406229327","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-alpha.1":{"name":"@bobbyg603/capacitor-social-login","version":"1.1.0-alpha.1","keywords":["capacitor","plugin","native","social","login","google","facebook","apple","twitter","sso","oauth","oauth2"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MIT","_id":"@bobbyg603/capacitor-social-login@1.1.0-alpha.1","maintainers":[{"name":"bobbyg603","email":"bobbyg603@gmail.com"}],"homepage":"https://github.com/Cap-go/capacitor-social-login#readme","bugs":{"url":"https://github.com/Cap-go/capacitor-social-login/issues"},"dist":{"shasum":"7408195d4261651ffc17642cf5eff7409f53656d","tarball":"https://registry.npmjs.org/@bobbyg603/capacitor-social-login/-/capacitor-social-login-1.1.0-alpha.1.tgz","fileCount":37,"integrity":"sha512-4UK10a2tmoyAicQNoTnthfLhzmGzeHN4uvSpVqcVAtHIYakDhJ9VgEeaS0CCPB1jtxYaIkGgbUKOBfu0HRfdgA==","signatures":[{"sig":"MEQCIAsq/Tca71PvQxBbo1eFXSOdkTzZKB8KLLz9G4VLqL0eAiA40BGajQ94BgYfzRaHI4vba9nhx5mvRphifClPSe8t/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425717},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"fd56e980f710538d77cac35bcf278b74f4831554","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --autocorrect --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SocialLoginPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier --config .prettierrc.js \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme Bobbyg603CapacitorSocialLogin -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"bobbyg603","email":"bobbyg603@gmail.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-social-login.git","type":"git"},"_npmVersion":"10.9.0","description":"All social logins in one plugin","directories":{},"_nodeVersion":"22.11.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.0","devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"5.7.2","@types/node":"^22.10.1","@capacitor/cli":"^7.0.0","@capacitor/ios":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/android":"^7.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.6.6","@ionic/prettier-config":"^4.0.0","@types/google.accounts":"^0.0.15","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-social-login_1.1.0-alpha.1_1738330119165_0.939976303055541","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-alpha.2":{"name":"@bobbyg603/capacitor-social-login","version":"1.1.0-alpha.2","keywords":["capacitor","plugin","native","social","login","google","facebook","apple","twitter","sso","oauth","oauth2"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MIT","_id":"@bobbyg603/capacitor-social-login@1.1.0-alpha.2","maintainers":[{"name":"bobbyg603","email":"bobbyg603@gmail.com"}],"homepage":"https://github.com/Cap-go/capacitor-social-login#readme","bugs":{"url":"https://github.com/Cap-go/capacitor-social-login/issues"},"dist":{"shasum":"4efa0d4b4fa3cd342ce2fd0ca82088908297d204","tarball":"https://registry.npmjs.org/@bobbyg603/capacitor-social-login/-/capacitor-social-login-1.1.0-alpha.2.tgz","fileCount":37,"integrity":"sha512-+MyZquANIoRsm/13eh+yBzNzjrgxGycFVqpzTIaGuMbN72A4O8jwhrJ/c4VosLPWeVRQiD5vk2x16oLolmJz9Q==","signatures":[{"sig":"MEYCIQCpaTqjzw/jitN/JK7+Vr9jX5vQGRuWW0Gmn8XoIYoIeAIhAJEblbkKosCbmw2o6djLHdcr3pbcjPgCgEFe35NIUX42","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425715},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"4e81c6fd7105d52e577d0f9291f5b571daa74b3d","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --autocorrect --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SocialLoginPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier --config .prettierrc.js \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme Bobbyg603CapacitorSocialLogin -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"bobbyg603","email":"bobbyg603@gmail.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-social-login.git","type":"git"},"_npmVersion":"10.9.0","description":"All social logins in one plugin","directories":{},"_nodeVersion":"22.11.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.0","devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"5.7.2","@types/node":"^22.10.1","@capacitor/cli":"^7.0.0","@capacitor/ios":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/android":"^7.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.6.6","@ionic/prettier-config":"^4.0.0","@types/google.accounts":"^0.0.15","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-social-login_1.1.0-alpha.2_1738337498499_0.05060073969968193","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-alpha.3":{"name":"@bobbyg603/capacitor-social-login","version":"1.1.0-alpha.3","keywords":["capacitor","plugin","native","social","login","google","facebook","apple","twitter","sso","oauth","oauth2"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MIT","_id":"@bobbyg603/capacitor-social-login@1.1.0-alpha.3","maintainers":[{"name":"bobbyg603","email":"bobbyg603@gmail.com"}],"homepage":"https://github.com/Cap-go/capacitor-social-login#readme","bugs":{"url":"https://github.com/Cap-go/capacitor-social-login/issues"},"dist":{"shasum":"eb5143835c54f4b23f5cd5ab037e92fce05d4717","tarball":"https://registry.npmjs.org/@bobbyg603/capacitor-social-login/-/capacitor-social-login-1.1.0-alpha.3.tgz","fileCount":37,"integrity":"sha512-0qjIPlVEpz2cXefJ5oT3rqIZdnGmO7KI86wRNrP35hNRQm3gCuG3fcaD/C3TrBy9dsWGROMdKXdpsLQXfII47A==","signatures":[{"sig":"MEQCIFBWiYJ6+NaLUoJctRH6KrWuWK1D8oRZwQQhih5N+WhMAiAF2cSd1lKEmza0MYUrhHotVYwMA+XcaIAJmvhES92Ibg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425761},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"0bcb64d127df5e47f22271782129a8d6218bc2a3","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --autocorrect --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SocialLoginPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier --config .prettierrc.js \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme Bobbyg603CapacitorSocialLogin -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"bobbyg603","email":"bobbyg603@gmail.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-social-login.git","type":"git"},"_npmVersion":"10.9.0","description":"All social logins in one plugin","directories":{},"_nodeVersion":"22.11.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.0","devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"5.7.2","@types/node":"^22.10.1","@capacitor/cli":"^7.0.0","@capacitor/ios":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/android":"^7.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.6.6","@ionic/prettier-config":"^4.0.0","@types/google.accounts":"^0.0.15","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-social-login_1.1.0-alpha.3_1738340020956_0.46126393860335235","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@bobbyg603/capacitor-social-login","version":"1.2.6","description":"All social logins in one plugin","main":"dist/plugin.cjs.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Cap-go/capacitor-social-login.git"},"bugs":{"url":"https://github.com/Cap-go/capacitor-social-login/issues"},"keywords":["capacitor","plugin","native","social","login","google","facebook","apple","twitter","sso","oauth","oauth2"],"scripts":{"verify":"npm run verify:ios && npm run verify:android && npm run verify:web","verify:ios":"xcodebuild -scheme Bobbyg603CapacitorSocialLogin -destination generic/platform=iOS","verify:android":"cd android && ./gradlew clean build test && cd ..","verify:web":"npm run build","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --autocorrect --format","eslint":"eslint . --ext .ts","prettier":"prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","docgen":"docgen --api SocialLoginPlugin --output-readme README.md --output-json dist/docs.json","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","prepublishOnly":"npm run build"},"devDependencies":{"@capacitor/android":"^7.0.0","@capacitor/cli":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/ios":"^7.0.0","@ionic/eslint-config":"^0.4.0","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0","@types/google.accounts":"^0.0.15","@types/node":"^22.10.1","eslint":"^8.57.0","eslint-plugin-import":"^2.31.0","prettier":"^3.4.2","prettier-plugin-java":"^2.6.6","rimraf":"^6.0.1","rollup":"^4.34.0","swiftlint":"^2.0.0","typescript":"5.7.2"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"prettier":"@ionic/prettier-config","swiftlint":"@ionic/swiftlint-config","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"packageManager":"pnpm@9.15.0","_id":"@bobbyg603/capacitor-social-login@1.2.6","gitHead":"ee8748767daaab3c60da14c79001f6865eab80a2","homepage":"https://github.com/Cap-go/capacitor-social-login#readme","_nodeVersion":"22.11.0","_npmVersion":"11.1.0","dist":{"integrity":"sha512-zIOb9ns2gBgi1DweL4aPYqyN38wMlYJbpjMc3z8ki134atRpfZX8p2foB6r6/YJ0JXKn2WV355NSDsNFaURl9w==","shasum":"de46447503ccfd4b358d546dda653523bfdf7a4d","tarball":"https://registry.npmjs.org/@bobbyg603/capacitor-social-login/-/capacitor-social-login-1.2.6.tgz","fileCount":37,"unpackedSize":431717,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCLL2Q5p+yRr/DE4a4ZI9pH6l0VqLg0owEVplrpadQUJwIhAKdUmf+N+suPFcUuQ/2a553XXwVmf9w4VOl1imq63PP1"}]},"_npmUser":{"name":"bobbyg603","email":"bobbyg603@gmail.com"},"directories":{},"maintainers":[{"name":"bobbyg603","email":"bobbyg603@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-social-login_1.2.6_1739508739663_0.32835631201799464"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-31T13:23:39.728Z","modified":"2025-02-14T04:52:20.386Z","1.1.0-alpha.0":"2025-01-31T13:23:40.070Z","1.1.0-alpha.1":"2025-01-31T13:28:39.418Z","1.1.0-alpha.2":"2025-01-31T15:31:38.696Z","1.1.0-alpha.3":"2025-01-31T16:13:41.107Z","1.2.6":"2025-02-14T04:52:19.873Z"},"bugs":{"url":"https://github.com/Cap-go/capacitor-social-login/issues"},"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MIT","homepage":"https://github.com/Cap-go/capacitor-social-login#readme","keywords":["capacitor","plugin","native","social","login","google","facebook","apple","twitter","sso","oauth","oauth2"],"repository":{"type":"git","url":"git+https://github.com/Cap-go/capacitor-social-login.git"},"description":"All social logins in one plugin","maintainers":[{"name":"bobbyg603","email":"bobbyg603@gmail.com"}],"readme":"# @capgo/capacitor-social-login\n <a href=\"https://capgo.app/\"><img src='https://raw.githubusercontent.com/Cap-go/capgo/main/assets/capgo_banner.png' alt='Capgo - Instant updates for capacitor'/></a>\n\n<div align=\"center\">\n  <h2><a href=\"https://capgo.app/?ref=plugin\"> ➡️ Get Instant updates for your App with Capgo 🚀</a></h2>\n  <h2><a href=\"https://capgo.app/consulting/?ref=plugin\"> Fix your annoying bug now, Hire a Capacitor expert 💪</a></h2>\n</div>\n\n## Fork Information\nThis plugin is a fork of [@codetrix-studio/capacitor-google-auth](https://github.com/CodetrixStudio/CapacitorGoogleAuth). We created this fork because the original plugin is \"virtually\" archived with no way to reach the maintainer in any medium, and only one person (@reslear) has write rights but doesn't handle native code.\n\nIf you're currently using `@codetrix-studio/capacitor-google-auth`, we recommend migrating to this plugin. You can follow our [migration guide here](https://github.com/Cap-go/capacitor-social-login/blob/main/MIGRATION_CODETRIX.md).\n\n## About\nAll social logins in one plugin\n\nThis plugin implement social auth for:\n- Google (with credential manager)\n- Apple (with 0auth on android)\n- Facebook ( with latest SDK)\n\nWe plan in the future to keep adding others social login and make this plugin the all in one solution.\n\nThis plugin is the only one who implement all 3 majors social login on WEB, IOS and Android\n\n## Install\n\n```bash\nnpm install @capgo/capacitor-social-login\nnpx cap sync\n```\n\n## Apple\n\n[How to get the credentials](https://github.com/Cap-go/capacitor-social-login/blob/main/docs/setup_apple.md)\n[How to setup redirect url](https://github.com/Cap-go/capacitor-social-login/blob/main/docs/apple_redirect_url.png)\n\n### Android configuration\n\nFor android you need a server to get the callback from the apple login. As we use the web SDK .\n\nCall the `initialize` method with the `apple` provider\n\n```typescript\nawait SocialLogin.initialize({\n  apple: {\n    clientId: 'your-client-id',\n    redirectUrl: 'your-redirect-url',\n  },\n});\nconst res = await SocialLogin.login({\n  provider: 'apple',\n  options: {\n    scopes: ['email', 'name'],\n  },\n});\n```\n\n### iOS configuration\n\ncall the `initialize` method with the `apple` provider\n\n```typescript\nawait SocialLogin.initialize({\n  apple: {\n    clientId: 'your-client-id', // it not used at os level only in plugin to know which provider initialize\n  },\n});\nconst res = await SocialLogin.login({\n  provider: 'apple',\n  options: {\n    scopes: ['email', 'name'],\n  },\n});\n```\n\n## Facebook\n\nDocs: [How to setup facebook login](./docs/setup_facebook.md)\n\n### Android configuration\n\nMore information can be found here: https://developers.facebook.com/docs/android/getting-started\n\nThen call the `initialize` method with the `facebook` provider\n\n```typescript\nawait SocialLogin.initialize({\n  facebook: {\n    appId: 'your-app-id',\n    clientToken: 'your-client-token',\n  },\n});\nconst res = await SocialLogin.login({\n  provider: 'facebook',\n  options: {\n    permissions: ['email', 'public_profile'],\n  },\n});\n```\n\n### iOS configuration\n\nIn file `ios/App/App/AppDelegate.swift` add or replace the following:\n\n```swift\nimport UIKit\nimport Capacitor\nimport FBSDKCoreKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n        // Override point for customization after application launch.\n        FBSDKCoreKit.ApplicationDelegate.shared.application(\n            application,\n            didFinishLaunchingWithOptions: launchOptions\n        )\n\n        return true\n    }\n\n    ...\n\n    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {\n        // Called when the app was launched with a url. Feel free to add additional processing here,\n        // but if you want the App API to support tracking app url opens, make sure to keep this call\n        if (FBSDKCoreKit.ApplicationDelegate.shared.application(\n            app,\n            open: url,\n            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,\n            annotation: options[UIApplication.OpenURLOptionsKey.annotation]\n        )) {\n            return true;\n        } else {\n            return ApplicationDelegateProxy.shared.application(app, open: url, options: options)\n        }\n    }\n}\n\n```\n\nAdd the following in the `ios/App/App/info.plist` file inside of the outermost `<dict>`:\n\n```xml\n\n<key>CFBundleURLTypes</key>\n<array>\n    <dict>\n        <key>CFBundleURLSchemes</key>\n        <array>\n            <string>fb[APP_ID]</string>\n        </array>\n    </dict>\n</array>\n<key>FacebookAppID</key>\n<string>[APP_ID]</string>\n<key>FacebookClientToken</key>\n<string>[CLIENT_TOKEN]</string>\n<key>FacebookDisplayName</key>\n<string>[APP_NAME]</string>\n<key>LSApplicationQueriesSchemes</key>\n<array>\n    <string>fbapi</string>\n    <string>fbauth</string>\n    <string>fb-messenger-share-api</string>\n    <string>fbauth2</string>\n    <string>fbshareextension</string>\n</array>\n```\n\nMore information can be found here: https://developers.facebook.com/docs/facebook-login/ios\n\n\nThen call the `initialize` method with the `facebook` provider\n\n```typescript\nawait SocialLogin.initialize({\n  facebook: {\n    appId: 'your-app-id',\n  },\n});\nconst res = await SocialLogin.login({\n  provider: 'facebook',\n  options: {\n    permissions: ['email', 'public_profile'],\n  },\n});\n```\n\n## Google\n\n[How to get the credentials](https://github.com/Cap-go/capacitor-social-login/blob/main/docs/setup_google.md)\n\n### Android configuration\n\nDirectly call the `initialize` method with the `google` provider\n\n```typescript\nawait SocialLogin.initialize({\n  google: {\n    webClientId: 'your-client-id', // the web client id for Android and Web\n  },\n});\nconst res = await SocialLogin.login({\n  provider: 'google',\n  options: {\n    scopes: ['email', 'profile'],\n  },\n});\n```\n\n### iOS configuration\n\nCall the `initialize` method with the `google` provider\n\n```typescript\nawait SocialLogin.initialize({\n  google: {\n    iOSClientId: 'your-client-id', // the iOS client id\n    iOSServerClientId: 'your-server-client-id', // the iOS server client id (optional)\n  },\n});\nconst res = await SocialLogin.login({\n  provider: 'google',\n  options: {\n    scopes: ['email', 'profile'],\n  },\n});\n```\n\n## API\n\n<docgen-index>\n\n* [`initialize(...)`](#initialize)\n* [`login(...)`](#login)\n* [`logout(...)`](#logout)\n* [`isLoggedIn(...)`](#isloggedin)\n* [`getAuthorizationCode(...)`](#getauthorizationcode)\n* [`refresh(...)`](#refresh)\n* [Interfaces](#interfaces)\n* [Type Aliases](#type-aliases)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### initialize(...)\n\n```typescript\ninitialize(options: InitializeOptions) => Promise<void>\n```\n\nInitialize the plugin\n\n| Param         | Type                                                            |\n| ------------- | --------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#initializeoptions\">InitializeOptions</a></code> |\n\n--------------------\n\n\n### login(...)\n\n```typescript\nlogin<T extends \"apple\" | \"google\" | \"facebook\">(options: Extract<LoginOptions, { provider: T; }>) => Promise<{ provider: T; result: ProviderResponseMap[T]; }>\n```\n\nLogin with the selected provider\n\n| Param         | Type                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |\n| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| **`options`** | <code><a href=\"#extract\">Extract</a>&lt;{ provider: 'facebook'; options: <a href=\"#facebookloginoptions\">FacebookLoginOptions</a>; }, { provider: T; }&gt; \\| <a href=\"#extract\">Extract</a>&lt;{ provider: 'google'; options: <a href=\"#googleloginoptions\">GoogleLoginOptions</a>; }, { provider: T; }&gt; \\| <a href=\"#extract\">Extract</a>&lt;{ provider: 'apple'; options: <a href=\"#appleprovideroptions\">AppleProviderOptions</a>; }, { provider: T; }&gt;</code> |\n\n**Returns:** <code>Promise&lt;{ provider: T; result: ProviderResponseMap[T]; }&gt;</code>\n\n--------------------\n\n\n### logout(...)\n\n```typescript\nlogout(options: { provider: 'apple' | 'google' | 'facebook'; }) => Promise<void>\n```\n\nLogout\n\n| Param         | Type                                                          |\n| ------------- | ------------------------------------------------------------- |\n| **`options`** | <code>{ provider: 'apple' \\| 'google' \\| 'facebook'; }</code> |\n\n--------------------\n\n\n### isLoggedIn(...)\n\n```typescript\nisLoggedIn(options: isLoggedInOptions) => Promise<{ isLoggedIn: boolean; }>\n```\n\nIsLoggedIn\n\n| Param         | Type                                                            |\n| ------------- | --------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#isloggedinoptions\">isLoggedInOptions</a></code> |\n\n**Returns:** <code>Promise&lt;{ isLoggedIn: boolean; }&gt;</code>\n\n--------------------\n\n\n### getAuthorizationCode(...)\n\n```typescript\ngetAuthorizationCode(options: AuthorizationCodeOptions) => Promise<AuthorizationCode>\n```\n\nGet the current access token\n\n| Param         | Type                                                                          |\n| ------------- | ----------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#authorizationcodeoptions\">AuthorizationCodeOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#authorizationcode\">AuthorizationCode</a>&gt;</code>\n\n--------------------\n\n\n### refresh(...)\n\n```typescript\nrefresh(options: LoginOptions) => Promise<void>\n```\n\nRefresh the access token\n\n| Param         | Type                                                  |\n| ------------- | ----------------------------------------------------- |\n| **`options`** | <code><a href=\"#loginoptions\">LoginOptions</a></code> |\n\n--------------------\n\n\n### Interfaces\n\n\n#### InitializeOptions\n\n| Prop           | Type                                                                                                                   |\n| -------------- | ---------------------------------------------------------------------------------------------------------------------- |\n| **`facebook`** | <code>{ appId: string; clientToken: string; }</code>                                                                   |\n| **`google`**   | <code>{ iOSClientId?: string; iOSServerClientId?: string; webClientId?: string; mode?: 'online' \\| 'offline'; }</code> |\n| **`apple`**    | <code>{ clientId?: string; redirectUrl?: string; }</code>                                                              |\n\n\n#### FacebookLoginResponse\n\n| Prop              | Type                                                                                                                                                                                                                                                                                                                                                            |\n| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **`accessToken`** | <code><a href=\"#accesstoken\">AccessToken</a> \\| null</code>                                                                                                                                                                                                                                                                                                     |\n| **`idToken`**     | <code>string \\| null</code>                                                                                                                                                                                                                                                                                                                                     |\n| **`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> |\n\n\n#### AccessToken\n\n| Prop                      | Type                  |\n| ------------------------- | --------------------- |\n| **`applicationId`**       | <code>string</code>   |\n| **`declinedPermissions`** | <code>string[]</code> |\n| **`expires`**             | <code>string</code>   |\n| **`isExpired`**           | <code>boolean</code>  |\n| **`lastRefresh`**         | <code>string</code>   |\n| **`permissions`**         | <code>string[]</code> |\n| **`token`**               | <code>string</code>   |\n| **`refreshToken`**        | <code>string</code>   |\n| **`userId`**              | <code>string</code>   |\n\n\n#### GoogleLoginResponseOnline\n\n| Prop               | Type                                                                                                                                                               |\n| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| **`accessToken`**  | <code><a href=\"#accesstoken\">AccessToken</a> \\| null</code>                                                                                                        |\n| **`idToken`**      | <code>string \\| null</code>                                                                                                                                        |\n| **`profile`**      | <code>{ email: string \\| null; familyName: string \\| null; givenName: string \\| null; id: string \\| null; name: string \\| null; imageUrl: string \\| null; }</code> |\n| **`responseType`** | <code>'online'</code>                                                                                                                                              |\n\n\n#### GoogleLoginResponseOffline\n\n| Prop                 | Type                   |\n| -------------------- | ---------------------- |\n| **`serverAuthCode`** | <code>string</code>    |\n| **`responseType`**   | <code>'offline'</code> |\n\n\n#### AppleProviderResponse\n\n| Prop              | Type                                                                                                         |\n| ----------------- | ------------------------------------------------------------------------------------------------------------ |\n| **`accessToken`** | <code><a href=\"#accesstoken\">AccessToken</a> \\| null</code>                                                  |\n| **`idToken`**     | <code>string \\| null</code>                                                                                  |\n| **`profile`**     | <code>{ user: string; email: string \\| null; givenName: string \\| null; familyName: string \\| null; }</code> |\n\n\n#### FacebookLoginOptions\n\n| Prop               | Type                  | Description      | Default            |\n| ------------------ | --------------------- | ---------------- | ------------------ |\n| **`permissions`**  | <code>string[]</code> | Permissions      |                    |\n| **`limitedLogin`** | <code>boolean</code>  | Is Limited Login | <code>false</code> |\n| **`nonce`**        | <code>string</code>   | Nonce            |                    |\n\n\n#### GoogleLoginOptions\n\n| Prop                    | Type                  | Description                                                                                          | Default            |\n| ----------------------- | --------------------- | ---------------------------------------------------------------------------------------------------- | ------------------ |\n| **`scopes`**            | <code>string[]</code> | Specifies the scopes required for accessing Google APIs The default is defined in the configuration. |                    |\n| **`nonce`**             | <code>string</code>   | Nonce                                                                                                |                    |\n| **`forceRefreshToken`** | <code>boolean</code>  | Force refresh token (only for Android)                                                               | <code>false</code> |\n| **`disableOneTap`**     | <code>boolean</code>  | Disable one-tap login (web only)                                                                     | <code>false</code> |\n\n\n#### AppleProviderOptions\n\n| Prop         | Type                  | Description |\n| ------------ | --------------------- | ----------- |\n| **`scopes`** | <code>string[]</code> | Scopes      |\n| **`nonce`**  | <code>string</code>   | Nonce       |\n| **`state`**  | <code>string</code>   | State       |\n\n\n#### isLoggedInOptions\n\n| Prop           | Type                                           | Description |\n| -------------- | ---------------------------------------------- | ----------- |\n| **`provider`** | <code>'apple' \\| 'google' \\| 'facebook'</code> | Provider    |\n\n\n#### AuthorizationCode\n\n| Prop              | Type                | Description  |\n| ----------------- | ------------------- | ------------ |\n| **`jwt`**         | <code>string</code> | Jwt          |\n| **`accessToken`** | <code>string</code> | Access Token |\n\n\n#### AuthorizationCodeOptions\n\n| Prop           | Type                                           | Description |\n| -------------- | ---------------------------------------------- | ----------- |\n| **`provider`** | <code>'apple' \\| 'google' \\| 'facebook'</code> | Provider    |\n\n\n### Type Aliases\n\n\n#### ProviderResponseMap\n\n<code>{ facebook: <a href=\"#facebookloginresponse\">FacebookLoginResponse</a>; google: <a href=\"#googleloginresponse\">GoogleLoginResponse</a>; apple: <a href=\"#appleproviderresponse\">AppleProviderResponse</a>; }</code>\n\n\n#### GoogleLoginResponse\n\n<code><a href=\"#googleloginresponseonline\">GoogleLoginResponseOnline</a> | <a href=\"#googleloginresponseoffline\">GoogleLoginResponseOffline</a></code>\n\n\n#### LoginOptions\n\n<code>{ provider: 'facebook'; options: <a href=\"#facebookloginoptions\">FacebookLoginOptions</a>; } | { provider: 'google'; options: <a href=\"#googleloginoptions\">GoogleLoginOptions</a>; } | { provider: 'apple'; options: <a href=\"#appleprovideroptions\">AppleProviderOptions</a>; }</code>\n\n\n#### Extract\n\n<a href=\"#extract\">Extract</a> from T those types that are assignable to U\n\n<code>T extends U ? T : never</code>\n\n</docgen-api>\n\n### Credits\n\nThis plugin implementation of google is based on [CapacitorGoogleAuth](https://github.com/CodetrixStudio/CapacitorGoogleAuth) with a lot of rework, the current maintainer is unreachable, we are thankful for his work and are now going forward on our own!\nThanks to [reslear](https://github.com/reslear) for helping to tranfer users to this plugin from the old one and all the work.\n","readmeFilename":"README.md"}