uniapp 安卓谷歌登录如何获取access_token
在uniapp中,安卓端使用谷歌登录时,如何获取access_token?我已经按照官方文档集成了谷歌登录SDK,能够成功调起登录界面并获取用户信息,但无法找到获取access_token的方法。请问具体应该如何实现?是否需要额外配置或调用特定接口?
在 UniApp 中获取 Google 登录的 access_token,可以通过以下步骤实现:
-
配置 Google 开发者控制台
在 Google Cloud Console 创建项目,启用 Google Sign-In API,并配置 OAuth 2.0 客户端 ID(需填写 Android 应用的包名和 SHA-1 指纹)。 -
使用 UniApp 第三方登录插件
安装uni-login或其他支持 Google 登录的插件,或通过uni.getProvider和uni.login实现:uni.login({ provider: 'google', success: (res) => { // res.authResult 包含 access_token const access_token = res.authResult.access_token; }, fail: (err) => console.error('登录失败', err) }); -
注意事项
- 确保 Android 应用签名与 Google 控制台配置的 SHA-1 一致。
- 测试时需使用正式签名或配置调试版 SHA-1。
- 部分环境可能需要自行封装原生插件实现。
通过以上步骤即可在 Android 端获取 Google 登录的 access_token,用于后续接口调用。
在 UniApp 中实现安卓谷歌登录并获取 access_token,可以通过以下步骤完成。这里使用 Google Sign-In SDK 结合 UniApp 的插件机制实现。
步骤概述:
- 配置 Google API 控制台:创建 OAuth 2.0 客户端 ID。
- 集成 UniApp 插件:使用支持谷歌登录的插件(如官方或第三方插件)。
- 调用登录方法:获取授权码或直接返回
access_token。 - 验证并获取用户信息(可选)。
详细步骤及代码示例:
1. 配置 Google API 控制台
- 访问 Google Cloud Console。
- 创建项目并启用 Google Sign-In API。
- 生成 OAuth 2.0 客户端 ID(应用类型选择“Android”,并填写包名和 SHA-1 证书指纹)。
2. 集成 UniApp 插件
推荐使用官方或社区插件(如 uni-signin 或自定义原生插件)。以下以假设使用一个名为 google-login 的插件为例。
首先,在 manifest.json 中配置插件:
{
"app-plus": {
"plugins": {
"google-login": {
"client_id": "YOUR_GOOGLE_CLIENT_ID"
}
}
}
}
3. 调用登录方法
在 Vue 页面中,调用插件登录方法获取 access_token:
// 在 methods 中定义登录函数
methods: {
googleLogin() {
// 假设插件方法为 uni.requireNativePlugin('google-login')
const googleLogin = uni.requireNativePlugin('google-login');
googleLogin.login((result) => {
if (result.code === 200) {
// 成功获取 access_token
const accessToken = result.access_token;
console.log('access_token:', accessToken);
// 后续可发送 accessToken 到服务器验证或直接使用
} else {
console.error('登录失败:', result.message);
}
});
}
}
4. 获取授权码并交换 access_token(备选方案)
如果插件只返回授权码,需通过服务器交换 access_token:
// 客户端发送授权码到服务器
uni.request({
url: 'https://your-server.com/auth/google',
method: 'POST',
data: {
code: result.authorizationCode // 从插件获取的授权码
},
success: (res) => {
const accessToken = res.data.access_token;
console.log('access_token:', accessToken);
}
});
注意事项:
- SHA-1 证书:确保在 Google Cloud Console 中配置的 SHA-1 与打包 APK 时使用的证书一致(调试版和生产版不同)。
- 插件兼容性:不同插件接口可能略有差异,参考具体插件文档调整代码。
- 安全:不要在前端硬编码敏感信息;
access_token应通过服务器处理,避免直接暴露。
总结:
通过配置 Google API、集成 UniApp 插件并调用登录方法,即可获取 access_token。如果插件支持,可直接返回;否则需通过授权码由服务器交换。实际开发中,建议使用成熟插件(如 uni-signin)以减少兼容性问题。

