写一个登录跳转的前后端代码
时间: 2023-05-27 19:06:44 浏览: 53
前端代码:
```html
<form action="/login" method="post">
<input type="text" name="username">
<input type="password" name="password">
<button type="submit">登录</button>
</form>
```
后端代码:
```javascript
const express = require('express');
const bodyParser = require('body-parser');
const session = require('express-session');
const app = express();
// 设置 session
app.use(session({
secret: 'my secret key', // 用于加密 session 的 secret key
resave: false, // 是否每次请求都重新保存 session
saveUninitialized: false, // 是否保存未初始化的 session
}));
// 解析请求体
app.use(bodyParser.urlencoded({ extended: false }));
// 处理登录请求
app.post('/login', (req, res) => {
const { username, password } = req.body;
// 在实际应用中,这里应该查询数据库或者其他验证方式来判断用户名和密码是否正确
if (username === 'admin' && password === '123456') {
// 登录成功,设置 session
req.session.username = username;
res.redirect('/home');
} else {
// 登录失败,返回登录页
res.redirect('/');
}
});
// 处理首页请求
app.get('/home', (req, res) => {
// 判断用户是否已登录
if (req.session.username) {
// 用户已登录,返回首页
res.send(`欢迎 ${req.session.username} 登录`);
} else {
// 用户未登录,跳转到登录页
res.redirect('/');
}
});
// 处理其他请求
app.get('/', (req, res) => {
res.send('请登录');
});
// 启动服务器
app.listen(3000, () => {
console.log('服务器已启动');
});
```
以上是一个简单的登录跳转示例,当用户在登录页输入用户名和密码并点击登录按钮时,前端发送一个 POST 请求到后端的 `/login` 接口,后端通过解析请求体获取用户名和密码,然后判断用户名和密码是否正确,如果正确则设置 session 中的用户名,并跳转到首页 `/home`;如果不正确则直接跳转回登录页。在首页 `/home` 中,后端判断用户是否已登录,如果已登录则返回欢迎消息,否则跳转回登录页。