uni-app中uni.login谷歌授权登录报错,返回 login fail 10

uni-app中uni.login谷歌授权登录报错,返回 login fail 10

uni.login谷歌授权登录返回 login fail 10,头天还能拿到"access token"等信息。第二天就报错

图片

1 回复

更多关于uni-app中uni.login谷歌授权登录报错,返回 login fail 10的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app中使用uni.login进行谷歌授权登录时遇到login fail 10错误,通常表示登录过程中出现了某种配置或权限问题。由于uni.login方法主要用于微信小程序登录,并且默认是微信授权登录,直接用于谷歌授权登录并不适用。不过,如果你是在尝试集成谷歌的OAuth 2.0授权流程,以下是一个基本的示例代码,用于在uni-app中通过谷歌OAuth 2.0进行登录。

首先,你需要在谷歌开发者控制台创建一个项目,并获取客户端ID和客户端密钥。然后,你可以使用以下步骤来实现OAuth 2.0登录流程:

  1. 引导用户到谷歌登录页面: 使用谷歌提供的授权URL,引导用户进行登录。
// 谷歌OAuth 2.0授权URL模板
const googleAuthUrl = `https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=email&access_type=online&prompt=consent`;

// 跳转到谷歌登录页面
uni.navigateTo({
    url: `web-view?src=${encodeURIComponent(googleAuthUrl)}`
});

注意:这里使用了web-view组件来加载谷歌的登录页面。YOUR_CLIENT_IDYOUR_REDIRECT_URI需要替换为你的实际值。

  1. 处理重定向和获取授权码: 用户登录并同意授权后,谷歌会重定向到你的redirect_uri,并附带一个授权码(code)。
// 假设你在你的redirect_uri页面处理这个逻辑
uni.getLaunchOptionsSync().query.code; // 获取到授权码
  1. 使用授权码获取访问令牌: 使用获取到的授权码,向谷歌的token端点发送请求,以获取访问令牌。
const https = require('https');

const tokenUrl = 'https://accounts.google.com/o/oauth2/token';
const postData = `code=YOUR_AUTH_CODE&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&redirect_uri=YOUR_REDIRECT_URI&grant_type=authorization_code`;

const options = {
    hostname: 'accounts.google.com',
    port: 443,
    path: tokenUrl,
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': Buffer.byteLength(postData)
    }
};

const req = https.request(options, (res) => {
    let data = '';
    res.on('data', (chunk) => {
        data += chunk;
    });
    res.on('end', () => {
        console.log(JSON.parse(data)); // 处理返回的访问令牌
    });
});

req.write(postData);
req.end();

注意:这里的YOUR_AUTH_CODEYOUR_CLIENT_IDYOUR_CLIENT_SECRETYOUR_REDIRECT_URI需要替换为你的实际值。

这个流程提供了一个基本的框架,用于在uni-app中实现谷歌OAuth 2.0登录。根据你的具体需求,你可能需要调整这个流程的细节。

回到顶部