node.js写登录注册接口
时间: 2023-11-02 11:56:35 浏览: 38
好的,首先我们需要安装一些依赖:
- express:用于搭建服务器;
- body-parser:用于解析请求体中的数据;
- jsonwebtoken:用于生成和验证 token。
可以使用以下命令安装:
```
npm install express body-parser jsonwebtoken
```
接下来就可以开始写代码了。
首先创建一个 `index.js` 文件:
```
const express = require('express');
const bodyParser = require('body-parser');
const jwt = require('jsonwebtoken');
const app = express();
app.use(bodyParser.json());
const JWT_SECRET = 'mysecretkey';
app.post('/api/login', (req, res) => {
const { username, password } = req.body;
// 这里需要根据实际情况验证用户名和密码是否正确
if (username === 'admin' && password === 'admin') {
const token = jwt.sign({ username }, JWT_SECRET);
res.json({ token });
} else {
res.status(401).json({ message: '用户名或密码错误' });
}
});
app.post('/api/register', (req, res) => {
// 这里需要根据实际情况处理注册逻辑
res.json({ message: '注册成功' });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
```
上面的代码中,我们使用了 `jsonwebtoken` 生成了一个 token,并将其返回给客户端。客户端以后可以使用这个 token 发送请求。
接下来,需要编写 token 验证的中间件:
```
function auth(req, res, next) {
const authHeader = req.headers.authorization;
if (authHeader) {
const token = authHeader.split(' ')[1];
try {
const decoded = jwt.verify(token, JWT_SECRET);
req.user = decoded;
next();
} catch (err) {
res.status(401).json({ message: '无效的 token' });
}
} else {
res.status(401).json({ message: '未提供 token' });
}
}
```
这个中间件会检查请求头中是否包含 token,如果包含则验证 token 的有效性,并将解码后的用户信息保存到 `req.user` 中。
最后,我们编写一个需要认证的 API 接口:
```
app.get('/api/profile', auth, (req, res) => {
res.json({ username: req.user.username });
});
```
这个接口需要认证,需要通过 `auth` 中间件验证用户的 token。
至此,我们已经完成了登录、注册和认证的接口编写。如果需要更复杂的功能,可以根据实际情况进行扩展。