uni-app的uni-admin添加的用户无法在其他的uni-app应用中登录

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

uni-app的uni-admin添加的用户无法在其他的uni-app应用中登录

开发环境 版本号 项目创建方式

在uni-admin管理后台新添加的用户,在另外一个应用(关联同一个服务空间,同一个用户表)密码登录一直显示“验证码错误”(图形验证码),而在这个应用注册的用户(与前面那个用户同一张表)就可以正常登录。

2 回复

可以抓包看一下服务端的返回信息,或者在对应云函数中打印日志看一下。


在处理uni-app的uni-admin添加的用户无法在其他uni-app应用中登录的问题时,通常涉及到用户认证和数据同步的问题。这里假设你已经正确设置了uni-admin作为后端管理系统,并且已经在其中添加了用户。接下来,我们需要确保这些用户信息能够在其他uni-app应用中正确识别和验证。

以下是一个简化的代码示例,展示了如何在uni-app前端应用中集成登录功能,并与uni-admin后端进行交互。假设你使用的是JWT(JSON Web Token)作为认证机制。

后端(uni-admin)

确保uni-admin后端能够生成和验证JWT。这通常涉及到用户登录API,该API在用户成功登录后返回一个JWT。

// 示例:使用Express和jsonwebtoken库
const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();

app.post('/login', (req, res) => {
    const { username, password } = req.body;
    // 验证用户名和密码(这里省略具体逻辑)
    if (validUser(username, password)) {
        const token = jwt.sign({ username }, 'your_secret_key', { expiresIn: '1h' });
        res.json({ token });
    } else {
        res.status(401).json({ message: 'Invalid credentials' });
    }
});

function validUser(username, password) {
    // 这里的逻辑应该与uni-admin的用户验证逻辑相匹配
    return username === 'admin' && password === 'password';
}

app.listen(3000, () => console.log('Server started on port 3000'));

前端(uni-app)

在前端uni-app应用中,你需要实现登录功能,并在之后的请求中携带JWT。

// 登录函数
async function login(username, password) {
    const response = await uni.request({
        url: 'http://localhost:3000/login',
        method: 'POST',
        data: { username, password }
    });
    if (response.statusCode === 200) {
        uni.setStorageSync('token', response.data.token);
    } else {
        console.error('Login failed', response.data);
    }
}

// 请求拦截器,自动添加JWT
uni.addInterceptor('request', {
    invoke(chain) {
        const token = uni.getStorageSync('token');
        if (token) {
            chain.request.header['Authorization'] = `Bearer ${token}`;
        }
        return chain.proceed(chain.request);
    }
});

以上代码展示了如何在uni-app前端应用中实现用户登录,并通过请求拦截器自动在每个请求中添加JWT。确保你的uni-admin后端能够正确验证这些JWT,并且前端和后端的JWT密钥(your_secret_key)保持一致。

如果问题仍然存在,建议检查以下几点:

  • 确保uni-admin的用户数据与其他uni-app应用共享。
  • 检查JWT的生成和验证逻辑是否正确。
  • 确保网络请求没有跨域问题。
回到顶部