@codetrix-studio/capacitor-google-auth

中文文档
3.4.0-rc.4发布于 2024/05/01MITTypeScriptCommonJS零依赖近 30 天下载 22.4万

Google Auth plugin for capacitor.

原始使用文档
文档目录16 节
  1. Contributions
  2. Install
  3. Updating
  4. Usage
  5. WEB
  6. iOS
  7. Android
  8. Configure
  9. API
  10. initialize(...)
  11. signIn()
  12. refresh()
  13. signOut()
  14. Interfaces
  15. Migration guide
  16. License

CapacitorGoogleAuth

@codetrix-studio/capacitor-google-auth

CAPACITOR 6

Capacitor plugin for Google Auth.


npm npm npm Dependents (via libraries.io) install size

Contributions

PRs are welcome and much appreciated that keeps this plugin up to date with Capacitor and official Google Auth platform library feature parity.

Try to follow good code practices. You can even help keeping the included demo updated.

PRs for features that are not aligned with the official Google Auth library are discouraged.

(We are beginner-friendly here)

Install

1. Install package

npm i --save @codetrix-studio/capacitor-google-auth

# pnpm 
pnpm add @codetrix-studio/capacitor-google-auth

# yarn 
yarn add @codetrix-studio/capacitor-google-auth

2. Update capacitor deps

npx cap update

Updating

If need migrate to different Capacitor versions see instruction for migrate plugin to new version.

Usage

WEB

Register plugin and manually initialize

import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';

// use hook after platform dom ready
GoogleAuth.initialize({
  clientId: 'CLIENT_ID.apps.googleusercontent.com',
  scopes: ['profile', 'email'],
  grantOfflineAccess: true,
});

or if need use meta tags (Optional):

<meta name="google-signin-client_id" content="{your client id here}" />
<meta name="google-signin-scope" content="profile email" />

Options

  • clientId - The app's client ID, found and created in the Google Developers Console.
  • scopes – same as Configure scopes
  • grantOfflineAccess – boolean, default false, Set if your application needs to refresh access tokens when the user is not present at the browser.

Use it

GoogleAuth.signIn();

Angular

init hook

// app.component.ts
constructor() {
  this.initializeApp();
}

initializeApp() {
  this.platform.ready().then(() => {
    GoogleAuth.initialize()
  })
}

sign in function

async googleSignIn() {
  let googleUser = await GoogleAuth.signIn();

  /*
    If you use Firebase you can forward and use the logged in Google user like this:
  */
  const credential = auth.GoogleAuthProvider.credential(googleUser.authentication.idToken);
  return this.afAuth.auth.signInAndRetrieveDataWithCredential(credential);
}

Vue 3

<script setup lang="ts">
import { defineComponent, onMounted } from 'vue';
import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';

onMounted(() => {
  GoogleAuth.initialize();
});

async function logIn() {
  const response = await GoogleAuth.signIn();
  console.log(response);
}
</script>

or see more CapacitorGoogleAuth-Vue3-example

iOS

  1. Create in Google cloud console credential Client ID for iOS and get Client ID and iOS URL scheme

  2. Add identifier REVERSED_CLIENT_ID as URL schemes to Info.plist from iOS URL scheme
    (Xcode: App - Targets/App - Info - URL Types, click plus icon)

  3. Set Client ID one of the ways:

    1. Set in capacitor.config.json
      • iosClientId - specific key for iOS
      • clientId - or common key for Android and iOS
    2. Download GoogleService-Info.plist file with CLIENT_ID and copy to ios/App/App necessarily through Xcode for indexing.

plugin first use iosClientId if not found use clientId if not found use value CLIENT_ID from file GoogleService-Info.plist

Android

Set Client ID :

  1. In capacitor.config.json

    • androidClientId - specific key for Android
    • clientId - or common key for Android and iOS
  2. or set inside your strings.xml

plugin first use androidClientId if not found use clientId if not found use value server_client_id from file strings.xml

<resources>
  <string name="server_client_id">Your Web Client Key</string>
</resources>

Refresh method

This method should be called when the app is initialized to establish if the user is currently logged in. If true, the method will return an accessToken, idToken and an empty refreshToken.

checkLoggedIn() {
    GoogleAuth.refresh()
        .then((data) => {
            if (data.accessToken) {
                this.currentTokens = data;
            }
        })
        .catch((error) => {
            if (error.type === 'userLoggedOut') {
                this.signin()
            }
        });
}

Configure

NameTypeDescription
clientIdstringThe app's client ID, found and created in the Google Developers Console.
iosClientIdstringSpecific client ID key for iOS
androidClientIdstringSpecific client ID key for Android
scopesstring[]Scopes that you might need to request to access Google APIs
https://developers.google.com/identity/protocols/oauth2/scopes
serverClientIdstringThis ClientId used for offline access and server side handling
forceCodeForRefreshTokenbooleanForce user to select email address to regenerate AuthCode
used to get a valid refreshtoken (work on iOS and Android)

Provide configuration in root capacitor.config.json

{
  "plugins": {
    "GoogleAuth": {
      "scopes": ["profile", "email"],
      "serverClientId": "xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
      "forceCodeForRefreshToken": true
    }
  }
}

or in capacitor.config.ts

/// <reference types="'@codetrix-studio/capacitor-google-auth'" />

const config: CapacitorConfig = {
  plugins: {
    GoogleAuth: {
      scopes: ['profile', 'email'],
      serverClientId: 'xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com',
      forceCodeForRefreshToken: true,
    },
  },
};

export default config;

API

initialize(...)

initialize(options?: InitOptions) => void

Initializes the GoogleAuthPlugin, loading the gapi library and setting up the plugin.

ParamTypeDescription
optionsInitOptions- Optional initialization options.

Since: 3.1.0


signIn()

signIn() => Promise<User>

Initiates the sign-in process and returns a Promise that resolves with the user information.

Returns: Promise<User>


refresh()

refresh() => Promise<Authentication>

Refreshes the authentication token and returns a Promise that resolves with the updated authentication details.

Returns: Promise<Authentication>


signOut()

signOut() => Promise<any>

Signs out the user and returns a Promise.

Returns: Promise<any>


Interfaces

InitOptions

PropTypeDescriptionDefaultSince
clientIdstringThe app's client ID, found and created in the Google Developers Console. Common for Android or iOS. The default is defined in the configuration.3.1.0
scopesstring[]Specifies the scopes required for accessing Google APIs The default is defined in the configuration.
grantOfflineAccessbooleanSet if your application needs to refresh access tokens when the user is not present at the browser. In response use serverAuthCode keyfalse3.1.0

User

PropTypeDescription
idstringThe unique identifier for the user.
emailstringThe email address associated with the user.
namestringThe user's full name.
familyNamestringThe family name (last name) of the user.
givenNamestringThe given name (first name) of the user.
imageUrlstringThe URL of the user's profile picture.
serverAuthCodestringThe server authentication code.
authenticationAuthenticationThe authentication details including access, refresh and ID tokens.

Authentication

PropTypeDescription
accessTokenstringThe access token obtained during authentication.
idTokenstringThe ID token obtained during authentication.
refreshTokenstringThe refresh token.

Migration guide

Migrate from 3.3.x to 3.4.x

Install version 3.4.x:

npm i --save @codetrix-studio/capacitor-google-auth@^3.4

Follow instruction for you project Updating to Capacitor 6.

Migrate from 3.2.x to 3.3.x

Install version 3.3.x:

npm i --save @codetrix-studio/capacitor-google-auth^3.3

Follow instruction for you project Updating from Capacitor 4 to Capacitor 5.

Migrate from 3.2.1 to 3.2.2

for Android in file MainActivity.onCreate

- this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
-   add(GoogleAuth.class);
- }});
+ this.registerPlugin(GoogleAuth.class);

Migrate from 3.1.x to 3.2.x

Install version 3.2.x:

npm i --save @codetrix-studio/capacitor-google-auth^3.2

Follow instruction for you project Updating from Capacitor 3 to Capacitor 4.

Migrate from 3.0.2 to 3.1.0

- GoogleAuth.init()
+ GoogleAuth.initialize()

Migrate from 2 to 3

Install version 3.x.x:

npm i --save @codetrix-studio/capacitor-google-auth^3.0

After migrate to Capcitor 3 updating you projects, see diff:

WEB
- import "@codetrix-studio/capacitor-google-auth";
- import { Plugins } from '@capacitor/core';
+ import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth'

- Plugins.GoogleAuth.signIn();
+ GoogleAuth.init()
+ GoogleAuth.signIn()

Migrate from 1 to 2

Install version 2.x.x:

npm i --save @codetrix-studio/capacitor-google-auth@2

for capacitor 2.x.x use instruction

License

MIT

版本与发布记录

@codetrix-studio/capacitor-google-auth 共发布 44 个版本,首次发布于 2019/05/20;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.4.0-rc.4latest2024/05/012 年前
3.4.0-rc.32024/04/302 年前
3.4.0-rc.12024/04/222 年前
3.4.0-rc.02024/02/192 年前
3.3.62023/11/272 年前
3.3.52023/11/182 年前

关于 @codetrix-studio/capacitor-google-auth 的常见问题

@codetrix-studio/capacitor-google-auth 是什么?

Google Auth plugin for capacitor.

如何安装 @codetrix-studio/capacitor-google-auth?

在项目目录运行 npm install @codetrix-studio/capacitor-google-auth,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(^6.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@codetrix-studio/capacitor-google-auth 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@codetrix-studio/capacitor-google-auth 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@codetrix-studio/capacitor-google-auth 可以商用吗?

@codetrix-studio/capacitor-google-auth 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@codetrix-studio/capacitor-google-auth 的下载量有多少?

根据 npm 官方下载统计,@codetrix-studio/capacitor-google-auth 在 2026/10/10 – 2026/11/08 这 30 天内被下载 223,599 次,日均约 7,453 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@codetrix-studio/capacitor-google-auth 还在维护吗?

最新版本 3.4.0-rc.4 发布于 2024/05/01(2 年前);至今共发布 44 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/05/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。