跳转到正文

@capgo/capacitor-social-login

一个插件,搞定所有社交登录。

@capgo/capacitor-social-login 是适用于 Web、iOS 和 Android 的一站式社交登录插件。

它实现了:

  • 结合 Android Credential Manager 的 Google Sign-In
  • Sign in with Apple(包括 Android 端的 OAuth)
  • 基于当前 Facebook SDK 的 Facebook Login
  • 通过 OAuth 2.0 接入的 Twitter/X
  • 通用 OAuth2 和 OIDC 提供商,包括 GitHub、Microsoft Entra ID、Auth0、Okta、Keycloak 以及其他兼容服务器

对于从 Ionic Appflow Social Login 或 Ionic Auth Connect 迁移的应用,它也是 Capgo 迁移路径。

此插件最初是基于以下项目 fork 开发的: @codetrix-studio/capacitor-google-auth。由于原软件包已基本停止维护,因此 Capgo 负责维护此插件,作为其官方替代方案。

如果您仍在使用 @codetrix-studio/capacitor-google-auth,请参考 旧版 Google Auth 迁移指南.

如果您正从 Ionic Auth Connect 迁移,请使用内置的 SocialLoginAuthConnect 包装器 (wrapper) 来处理 auth0, azure, cognito, okta,以及 onelogin 提供商名称:

插件版本Capacitor 兼容性持续维护
v8.xv8.x是
v7.xv7.x按需使用
v6.xv6.x否
v5.xv5.x否

此插件的主版本号与 Capacitor 的主版本号保持一致。例如,请配合 Capacitor 8 使用插件 v8。我们仅对最新的主版本进行积极维护。

观看插件配置及登录流程的快速演示。

  • initialize - 初始化插件。
  • login - 使用选定的提供商登录。
  • logout - 退出登录。
  • isLoggedIn - IsLoggedIn。
方法描述
initialize初始化插件。
login使用选定的提供商登录。
logout退出登录。
isLoggedInIsLoggedIn.
getAuthorizationCode获取当前授权 code。
refresh刷新 access token。
refreshToken内置 OAuth2 provider 的 OAuth2 refresh token 辅助工具。
handleRedirectCallback仅限 Web:处理 OAuth 重定向回调并返回解析结果。
decodeIdToken将 JWT(通常是 OIDC ID token)解码为 claims。
getAccessTokenExpirationDate将 access token 过期时间戳(自 epoch 起的毫秒数)转换为 ISO 日期字符串。
isAccessTokenAvailable检查 access token 是否可用(非空)。
isAccessTokenExpired检查 access token 是否已过期。
isRefreshTokenAvailable检查 refresh token 是否可用(非空)。
providerSpecificCall执行 provider 特定的调用。
getPluginVersion获取原生 Capacitor 插件版本。
openSecureWindow打开一个安全的 OAuth2 认证窗口。对于 Web 端,你需要在重定向页面中包含 code,以便通过 broadcast channel 将重定向 URL 发送回 App。示例如下: html <html> <head></head> <body> <script> const searchParams = new URLSearchParams(location.search) if (searchParams.has("code")) { new BroadcastChannel("my-channel-name").postMessage(location.href); window.close(); } </script> </body> </html> 对于移动端,你需要一个可以唤起 App 的重定向 URI,示例如下: myapp://oauth_callback/ 并确保在 App 的 info.plist 中进行了注册: xml <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>myapp</string> </array> </dict> </array> 以及在 AndroidManifest.xml 文件中: xml <activity> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="oauth_callback" android:scheme="myapp" /> </intent-filter> </activity> .

此参考文档同步自 src/definitions.ts 中的 capacitor-social-login.

如果你正在使用 @capgo/capacitor-social-login 用来规划身份验证和账户流程,并将它与 使用 @capgo/capacitor-social-login 关于使用 @capgo/capacitor-social-login 的原生能力, @capgo/capacitor-passkey 有关 @capgo/capacitor-passkey 的实现细节, @capgo/capacitor-native-biometric 有关 @capgo/capacitor-native-biometric 的实现细节, 双因素认证 有关双因素认证的实现细节,以及 SSO (企业版) 有关 SSO (Enterprise) 的实现细节。