更新记录

1.1.0(2025-03-05) 下载此版本

基于Credential Manager实现Google登录

1.0.0(2025-02-27) 下载此版本

实现Google登录/登出 功能


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.43,Android:5.0,iOS:不支持,HarmonyNext:不支持 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

uni-oauth-google

使用说明

关于 Credential Manager

Credential Manager 是Android 最新的登录鉴权方式.本插件基于Credential Manager实现了Google登录功能

创建 google cloud 应用

google云管理后台,创建应用,并创建OAuth 客户端 ID,重点确保填写正确的包名和证书签名。

创建完成后,保存客户端ID用于代码调用。客户端ID的格式:xxxxx.apps.googleusercontent.com

调用代码

以正确的包名和证书自定义基座后,可以使用下面的代码进行调用

uvue:

<template>
    <view>
        <button @tap="loginClick" >google登录</button>
        <button @tap="logoutClick" >google登出</button>
    </view>
</template>

<script>
    import { googleLogin, GoogleLoginOptions } from "@/uni_modules/uni-oauth-google"
    import { googleLogout, GoogleLogoutOptions } from "@/uni_modules/uni-oauth-google"

    export default {
        data() {
            return {
            }
        },
        methods: {
            loginClick:()=>{
                let options = {
                    serverClientId:"xxxxx.apps.googleusercontent.com",
                    success: (res : any) => {
                      console.log("success",res)
                    },
                    fail: (res : any) => {
                      console.log("fail",res)
                    },
                    complete: (res : any) => {
                        console.log("complete",res)
                    }
                } as GoogleLoginOptions;
                googleLogin(options);
            },
            logoutClick:()=>{
                let options = {
                  success: (res : any) => {
                    console.log("success",res)
                  },
                  fail: (res : any) => {
                    console.log("fail",res)
                  },
                  complete: (res : any|null) => {
                    console.log("complete",res)
                  }
                } as GoogleLogoutOptions;

                googleLogout(options);

            }
        }
    }
</script>

<style>

</style>

vue:

<template>
    <view>
        <button @tap="loginClick" >google登录</button>
        <button @tap="logoutClick" >google登出</button>
    </view>
</template>

<script>
    import { googleLogin } from "@/uni_modules/uni-oauth-google"
    import { googleLogout } from "@/uni_modules/uni-oauth-google"

    export default {
        data() {
            return {
            }
        },
        methods: {

            loginClick:()=>{

                let options = {
                    serverClientId:"xxxxxxxx.apps.googleusercontent.com",
                    success: (res) => {
                      console.log("success",res)
                    },
                    fail: (res) => {
                      console.log("fail",res)
                    },
                    complete: (res) => {
                        console.log("complete",res)
                    }
                } 
                googleLogin(options);
            },
            logoutClick:()=>{

                let options = {
                  success: () => {
                    console.log("success")
                  },
                  fail: (res) => {
                    console.log("fail",res)
                  },
                  complete: (res) => {
                    console.log("complete",res)
                  }
                }
                googleLogout(options);
            },
        }
    }
</script>

<style>

</style>

返回数据说明

{   
    // email 地址
    "email": "xxx@163.com",
    // 昵称
    "nickname": "xxx@163.com",
    // 原始的idToken信息,这是一个标准jwt格式,开发者可以重新解析进而获取更多信息
    "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjI1ZjgyMTE3MTM3ODhiNjE0NTQ3NGI1MDI5YjAxNDFiZDViM2RlOWMiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiIxNjEwMjIzMTg3ODgtamVwbHFna3BqazRkZnR2bHU5cGJkanBnMGhoZWttbnMuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiIxNjEwMjIzMTg3ODgtamQ5Z2ozNzgwa3ZiNzg1ZG9rOWxxMGI0YjR1cW1va2MuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDcyMDg5NDg3NzYzMzMzODQxMDYiLCJlbWFpbCI6ImhlYmluNjE4QDE2My5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwibm9uY2UiOiI3MTMzMjAwIiwibmFtZSI6ImhlYmluNjE4QDE2My5jb20iLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jTHZtaGQ3bk8tbEN6TE16YnAzcW9Tb1N2Z3pYbEl6LXE5c05ENjY4RzdtTkdrajRCND1zOTYtYyIsImlhdCI6MTc0MTE0OTcxNCwiZXhwIjoxNzQxMTUzMzE0fQ.q5_Qam2AWiys7PQ4uwUmqRQ0aDFl0zGGlKFDcGqSubHoot3OviuYAkZEn8X-yccBZQbEl9EhprXRAvil07zQIF7akdOm892TdLbwj6BuT9l6jszH-ITKhHo2AIAnJtBFM1VG8ID0wdEHRN9Nw-esijdR-4hJWmmUnJ3sc6WYmZsje-pwsklbnwcyCckXEXUByMuY63XG8RnuUTLAxQIwOkgo_ekndtNlsiOl1MKuMtw_I71pdyVZKO0vlAYOiBpDN0Kax2TZ571alwSl8P_uQ9g_bDufQavmtDHXvUoL_i7TlA4L25wQZd29hu12QYBBPfhER1lxImK0SIbxa7LBYw",
    // 头像地址
    "headimgurl": "https://lh3.googleusercontent.com/a/ACg8ocLvmhd7nO-lCzLMzbp3qoSoSvgzXlIz-q9sND668G7mNGkj4B4=s96-c",
    // google 侧用户唯一id
    "openId": "107208948776333384106"
}

错误码说明

代码 说明
9010001 系统环境错误,请检查application/activity状态
9010002 用户参数配置错误,重点检查serverClientId是否正确
9010003 暂不支持的登录凭据
9010004 无法找到对应的凭据,可能是应用签名/包名不匹配或者与Google连接失败
9010005 登录组件缺失,请检查系统是否正确安装GMS
9010000 其他未知错误

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问