uniapp中使用谷歌登录
1.在使用 uni.login 方法进行谷歌登录之前,你需要先在谷歌开发者控制台上创建一个项目,并将项目的客户端 ID 配置到你的应用程序中。以下是具体的配置方法:
- 打开谷歌开发者控制台:https://console.developers.google.com/
- 创建一个新的项目,或者使用已经存在的项目。
- 在左侧导航栏中选择“API 和服务” > “凭据”。
- 点击“创建凭据”按钮,然后选择“OAuth 客户端 ID”。
- 在“应用类型”中选择“Web 应用程序”。
- 在“授权 JavaScript 来源”中填写你的应用程序的域名或 IP 地址。
- 在“授权重定向 URI”中填写一个用于接收授权码的 URI。该 URI 必须与你的应用程序后端服务器的 URI 匹配。
- 点击“创建”按钮,然后你将获得一个客户端 ID 和客户端密钥。
- 将客户端 ID 复制到你的应用程序代码中。
需要注意的是,为了确保安全性,你应该将客户端密钥保存在服务器端,而不是在客户端代码中。在服务器端,你可以使用该密钥来验证用户身份验证令牌是否真实有效。
2.将插件JY-GoogleSignin按照到项目中,并且在项目的manifest.json配置文件中的APP原生插件配置中选择该插件,并打一个自定义基座包,插件配置文档地址:https://ext.dcloud.net.cn/plugin?id=2244。
注意:IOS和安卓的配置有区别,IOS需要以下配置:
找到项目manifest.json,源码视图,找到这个节点=== app-plus -> distribute -> ios (初始化项目一般只到这个节点,如果没有,可以自己新增) b.新增如下配置 “urltypes” : [ { “urlidentifier” : “com.googleusercontent.apps.746568146308-”, “urlschemes” : [ “com.googleusercontent.apps.746568146308-” ] } ] urlidentifier和urlschemes的值为谷歌登录后台Client_id的值,做翻转以后的; (原始的值应该是:77273717237127-.apps.googleusercontent.com 翻转以后就是:com.googleusercontent.apps.77273717237127-)
3.在使用前要先引入插件
const JYGoogleSignin = uni.requireNativePlugin('JY-GoogleSignin');
4.初始化谷歌登录,在调用其他方法之前,必须要先调用这个方法
JYGoogleSignin.jy_init({
// 安卓的client_id应该是谷歌开发者后台默认Web应用的;iOS的client_id应该是谷歌开发者后台iOS对应的
client_id: "******",
serverClient_id: "",
scopes: [
"https://www.googleapis.com/auth/drive.file"
]
}, res=> {
// 这里不会有返回数据
})
其中serverClient_id和scopes不是必传项
5.唤起登录框
JYGoogleSignin.jy_startLogin(res=> {
// 这里会返回登录的结果,如果errorCode = 1,代表错误,可检查msg返回的数据判断;如果errorCode = 0,代表成功,也会在data里面返回登录数据
console.log(JSON.stringify(res));
})
6.检查登录信息(IOS不可用),用来在登录前检查是否有登录信息
JYGoogleSignin.jy_getLastSigned(res=> {
// 这里会返回登录的结果,如果errorCode = 1,代表未登录;如果errorCode = 0,代表已登录,也会在data里面返回登录数据
console.log(JSON.stringify(res));
})
6.退出登录
JYGoogleSignin.jy_logout(res=> {
// 不会返回数据,调用就成功
})