小明:嘿,小华,最近我们在做一个新的项目,需要实现统一身份认证,你能给我一些指导吗?
小华:当然可以。首先我们需要一个认证服务,比如使用OAuth 2.0或JWT(JSON Web Tokens)。
小明:那我们应该怎么开始呢?
小华:我们可以从创建一个简单的用户登录页面开始。下面是一个简单的HTML表单示例:
<form action="/login" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Login</button>
</form>
小明:好的,然后呢?

小华:接下来是处理登录请求的后端逻辑。这里我们使用Node.js和Express框架来处理登录请求。这是基本的登录路由处理:
const express = require('express');
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
const app = express();
app.use(express.json());
const users = [
{ id: 1, username: 'admin', password: 'password' }
];
app.post('/login', (req, res) => {
const { username, password } = req.body;
const user = users.find(u => u.username === username);
if (!user) return res.status(400).send('User not found.');
bcrypt.compare(password, user.password, (err, result) => {
if (result) {
const token = jwt.sign({ id: user.id }, 'secret_key', { expiresIn: '1h' });
res.send({ token });
} else {
res.status(400).send('Invalid password.');
}
});
});
app.listen(3000, () => console.log('Server running on port 3000'));
小明:这看起来非常有用!我将尝试实现这个功能。
小华:很好,如果你有任何问题,请随时问我。
