node.js写登录注册接口
时间: 2023-08-10 16:44:16 浏览: 43
好的,以下是一个简单的 Node.js 登录注册接口的示例代码:
```javascript
const express = require('express');
const bodyParser = require('body-parser');
const bcrypt = require('bcryptjs');
const app = express();
const port = 3000;
// 配置解析 JSON 请求体的中间件
app.use(bodyParser.json());
// 模拟一个用户数据集合
const users = [];
// 注册接口
app.post('/register', async (req, res) => {
const { username, password } = req.body;
// 检查用户名是否已被注册
if (users.find(user => user.username === username)) {
return res.status(409).json({ error: 'Username already taken' });
}
try {
// 使用 bcrypt 对密码进行加密
const hashedPassword = await bcrypt.hash(password, 10);
// 将新用户加入到用户数据集合中
users.push({
username,
password: hashedPassword
});
res.status(201).json({ message: 'User registered successfully' });
} catch {
res.status(500).json({ error: 'Internal server error' });
}
});
// 登录接口
app.post('/login', async (req, res) => {
const { username, password } = req.body;
// 查找用户名对应的用户数据
const user = users.find(user => user.username === username);
// 如果用户名不存在或者密码不正确,则认为登录失败
if (!user || !(await bcrypt.compare(password, user.password))) {
return res.status(401).json({ error: 'Incorrect username or password' });
}
res.json({ message: 'Login successful' });
});
app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`);
});
```
这段代码使用了 Express 框架来创建一个 HTTP 服务器,并且使用了 bodyParser 中间件来解析 JSON 请求体。其中,`/register` 接口用于实现用户注册功能,`/login` 接口用于实现用户登录功能。在接口中,使用了 bcryptjs 库来对密码进行加密和解密,以确保用户的密码安全。