uni-app 开发者中心登录失败,提示密码错误

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app 开发者中心登录失败,提示密码错误

操作步骤:

预期结果:

  • 登录成功

实际结果:

  • 提示密码错误

bug描述:

  • 开发者中心登录不上去,提示密码错误,重置之后仍然提示密码错误


| 信息类别       | 详细信息           |
|----------------|--------------------|
| 产品分类       | uniapp/App         |
| PC开发环境     | Mac                |
| PC系统版本     | macOS 12.0.1       |
| HBuilderX类型  | 正式               |
| HBuilderX版本  | 3.8.12             |
| 手机系统       | Android            |
| 手机系统版本   | Android 14         |
| 手机厂商       | 华为               |
| 手机机型       | xiaomi 12s         |
| 页面类型       | vue                |
| vue版本        | vue2               |
| 打包方式       | 云端               |
| 项目创建方式   | HBuilderX          |

3 回复

你是输入密码错误多次了吗 ? 重试下吧


登录上了,非常感谢❤️

在处理uni-app开发者中心登录失败,提示密码错误的问题时,首先需要确保客户端发送的密码与服务器端存储的密码匹配。如果确认密码输入无误,但仍然提示错误,可能是由于密码加密或验证逻辑存在问题。以下是一个简化的示例,展示如何在服务器端和客户端处理密码加密和验证。

服务器端(以Node.js为例)

假设我们使用bcrypt库来加密和验证密码。首先,安装bcrypt:

npm install bcrypt

然后,在用户注册时加密密码:

const bcrypt = require('bcrypt');
const saltRounds = 10; // 盐的轮次

async function hashPassword(password) {
    const salt = await bcrypt.genSalt(saltRounds);
    const hashed = await bcrypt.hash(password, salt);
    return hashed;
}

// 假设用户注册逻辑
async function registerUser(username, password) {
    const hashedPassword = await hashPassword(password);
    // 存储username和hashedPassword到数据库
}

在用户登录时验证密码:

async function verifyPassword(storedHashedPassword, inputPassword) {
    const isMatch = await bcrypt.compare(inputPassword, storedHashedPassword);
    return isMatch;
}

// 假设用户登录逻辑
async function loginUser(username, inputPassword) {
    // 从数据库获取对应的storedHashedPassword
    const user = await getUserByUsername(username); // 自定义函数
    if (user && await verifyPassword(user.password, inputPassword)) {
        // 登录成功逻辑
    } else {
        // 登录失败,提示密码错误
        throw new Error('Password is incorrect');
    }
}

客户端(uni-app)

在客户端,确保发送正确的密码到服务器。以下是一个简单的登录请求示例:

uni.request({
    url: 'https://yourserver.com/api/login',
    method: 'POST',
    data: {
        username: 'yourUsername',
        password: 'yourPassword' // 确保这里发送的是明文密码,服务器端负责加密
    },
    success: (res) => {
        if (res.data.success) {
            // 登录成功逻辑
        } else {
            // 登录失败,显示错误信息
            uni.showToast({
                title: res.data.message || 'Login failed',
                icon: 'none'
            });
        }
    },
    fail: () => {
        uni.showToast({
            title: 'Network error',
            icon: 'none'
        });
    }
});

以上代码仅用于演示基本流程,实际项目中需要考虑更多安全因素,如HTTPS、输入验证、错误处理等。如果问题依然存在,建议检查网络请求、服务器日志以及数据库存储的密码是否正确加密和存储。

回到顶部