更新记录
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 | 其他未知错误 |