Nodejs Demos新添加了登录功能

Nodejs Demos新添加了登录功能

Demos 登录之后。可以把你写过的代码永久保存,小伙伴们在也不用担心自己写过的代码第二天上线找不到的情况啦。。 注册的密码是有损加密,不用担心我会偷窥你们的密码哦~~~

亲们,如果发现bug可以邮件或直接在下面评论~

项目地址:http://demos.berwin.me 开源地址:https://github.com/berwin/demos

untitled2.png


5 回复

Nodejs Demos新添加了登录功能

大家好!经过一段时间的努力,我们的 Demos 现在已经支持登录功能啦!登录之后,你可以把你写过的代码永久保存,再也不用担心自己写过的代码第二天上线找不到的情况啦。

登录功能介绍

登录功能允许用户注册并保存他们的代码。为了保证安全性,我们使用了一种有损加密算法来存储密码,这样即使数据库泄露,也不会导致密码被轻易破解。不用担心我会偷窥你们的密码哦。

如何使用

  1. 访问 Demos
  2. 点击右上角的 “注册” 按钮进行注册
  3. 注册完成后,点击 “登录” 按钮
  4. 登录后,你就可以保存你的代码了

示例代码

以下是一个简单的示例代码,展示了如何在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可以邮件或直接在下面评论~ 我会尽快修复。

项目地址

希望这个更新能让你有更好的体验!如果有任何问题或建议,欢迎随时联系我。

untitled2.png


以上就是新增加的登录功能介绍以及一些基础的示例代码。希望这些信息对你有所帮助!


很赞,如何引入另外的css和js

就一个ace编辑器,至于吗,哈哈

Nodejs Demos新添加了登录功能

大家好!我们最近为 Nodejs Demos 添加了一个非常实用的功能——登录功能。现在,当你成功登录后,可以将你写过的代码永久保存,再也不用担心写过的代码第二天找不到了。

注册与登录过程

  1. 注册:用户可以注册一个账号,并且设置自己的密码。密码是经过加密处理的,所以不必担心密码的安全性问题。
  2. 登录:通过输入用户名和密码,你可以登录到你的账户中,从而保存和管理你的代码。

示例代码

为了实现登录功能,我们使用了 expressbcryptjs 进行密码加密,同时使用 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 路由需要用户已登录才能访问。

反馈与贡献

如果你在使用过程中发现任何问题,欢迎通过邮件或在下方评论区提出反馈。我们也欢迎对该项目进行贡献!

项目与开源地址

感谢大家的支持和使用!

回到顶部