Nodejs Demos新添加了登录功能
Nodejs Demos新添加了登录功能
Demos 登录之后。可以把你写过的代码永久保存,小伙伴们在也不用担心自己写过的代码第二天上线找不到的情况啦。。 注册的密码是有损加密,不用担心我会偷窥你们的密码哦~~~
亲们,如果发现bug可以邮件或直接在下面评论~
项目地址:http://demos.berwin.me 开源地址:https://github.com/berwin/demos
Nodejs Demos新添加了登录功能
大家好!经过一段时间的努力,我们的 Demos 现在已经支持登录功能啦!登录之后,你可以把你写过的代码永久保存,再也不用担心自己写过的代码第二天上线找不到的情况啦。
登录功能介绍
登录功能允许用户注册并保存他们的代码。为了保证安全性,我们使用了一种有损加密算法来存储密码,这样即使数据库泄露,也不会导致密码被轻易破解。不用担心我会偷窥你们的密码哦。
如何使用
- 访问 Demos
- 点击右上角的 “注册” 按钮进行注册
- 注册完成后,点击 “登录” 按钮
- 登录后,你就可以保存你的代码了
示例代码
以下是一个简单的示例代码,展示了如何在Node.js中实现基本的登录功能:
const express = require('express');
const bcrypt = require('bcryptjs');
const session = require('express-session');
const app = express();
app.use(express.json());
app.use(session({
secret: 'your_secret_key',
resave: false,
saveUninitialized: true
}));
// 假设这是你的用户数据
let users = [
{ username: 'berwin', password: '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi' } // 密码为 "password"
];
// 注册路由
app.post('/register', (req, res) => {
const { username, password } = req.body;
const hashedPassword = bcrypt.hashSync(password, 8);
users.push({ username, password: hashedPassword });
res.send('注册成功!');
});
// 登录路由
app.post('/login', (req, res) => {
const { username, password } = req.body;
const user = users.find(u => u.username === username);
if (user && bcrypt.compareSync(password, user.password)) {
req.session.user = user;
res.send('登录成功!');
} else {
res.status(400).send('用户名或密码错误!');
}
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
报告问题
亲们,如果发现bug可以邮件或直接在下面评论~ 我会尽快修复。
项目地址
希望这个更新能让你有更好的体验!如果有任何问题或建议,欢迎随时联系我。
以上就是新增加的登录功能介绍以及一些基础的示例代码。希望这些信息对你有所帮助!
很赞,如何引入另外的css和js
就一个ace编辑器,至于吗,哈哈
Nodejs Demos新添加了登录功能
大家好!我们最近为 Nodejs Demos 添加了一个非常实用的功能——登录功能。现在,当你成功登录后,可以将你写过的代码永久保存,再也不用担心写过的代码第二天找不到了。
注册与登录过程
- 注册:用户可以注册一个账号,并且设置自己的密码。密码是经过加密处理的,所以不必担心密码的安全性问题。
- 登录:通过输入用户名和密码,你可以登录到你的账户中,从而保存和管理你的代码。
示例代码
为了实现登录功能,我们使用了 express
和 bcryptjs
进行密码加密,同时使用 express-session
进行会话管理。
const express = require('express');
const bcrypt = require('bcryptjs');
const session = require('express-session');
const app = express();
app.use(express.json());
app.use(session({
secret: 'your-secret-key',
resave: false,
saveUninitialized: true
}));
// 用户数据模拟
let users = [];
app.post('/register', (req, res) => {
const { username, password } = req.body;
const hashedPassword = bcrypt.hashSync(password, 8);
users.push({ username, password: hashedPassword });
res.send('注册成功');
});
app.post('/login', (req, res) => {
const { username, password } = req.body;
const user = users.find(u => u.username === username);
if (user && bcrypt.compareSync(password, user.password)) {
req.session.user = user.username;
res.send('登录成功');
} else {
res.status(401).send('用户名或密码错误');
}
});
app.get('/protected', (req, res) => {
if (req.session.user) {
res.send(`欢迎 ${req.session.user} 访问`);
} else {
res.status(403).send('请先登录');
}
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
说明
- 注册:通过 POST 请求
/register
接口进行注册,密码通过bcryptjs
加密后存储。 - 登录:通过 POST 请求
/login
接口进行登录验证。如果验证成功,则将用户名存储在会话中。 - 受保护的路由:例如
/protected
路由需要用户已登录才能访问。
反馈与贡献
如果你在使用过程中发现任何问题,欢迎通过邮件或在下方评论区提出反馈。我们也欢迎对该项目进行贡献!
项目与开源地址
感谢大家的支持和使用!