Discussion

Discord Botu İçin Expressjs Kullanımı: JWT Kimlik Doğrulama ve Veritabanı Kaydı

Started by ASENA · 31 Aug 2026 18:06 · 4 Views · 0 Replies
Thread Starter #0
Discord botları, kullanıcı etkileşimini artırmak ve toplulukları yönetmek için oldukça popülerdir. Bu botların güvenli bir şekilde çalışması için kimlik doğrulama ve kullanıcı verilerinin yönetimi kritik öneme sahiptir. Bu yazıda, Express.js kullanarak JWT (JSON Web Token) kimlik doğrulama sistemi oluşturmayı ve kullanıcı kayıt işlemlerini MySQL veya MariaDB ile nasıl yapacağınızı ele alacağız.

JWT Kimlik Doğrulama

JWT, kullanıcı kimlik doğrulamasını güvenli bir şekilde gerçekleştirmek için kullanılan bir standarttır. Kullanıcı giriş yaptığında, sunucu bir token oluşturur ve bu token, kullanıcıyı tanımlamak için kullanılabilir. Express.js uygulamanızda JWT kullanmak için öncelikle gerekli kütüphaneleri yüklememiz gerekiyor:

CODE
12
npm install express jsonwebtoken bcryptjs mysql2


Sonrasında, kullanıcı şifrelerini güvenli bir şekilde saklamak için bcryptjs kütüphanesini kullanacağız. Aşağıdaki örnek, basit bir kullanıcı kayıt ve giriş sistemi için temel bir yapı sunar:

CODE
12345678910111213141516171819202122232425262728293031323334353637383940
const express = require('express');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcryptjs');
const mysql = require('mysql2');

const app = express();
app.use(express.json());

const db = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'yourpassword',
    database: 'yourdatabase'
});

app.post('/register', async (req, res) => {
    const { username, password } = req.body;
    const hashedPassword = await bcrypt.hash(password, 10);
    db.query('INSERT INTO users (username, password) VALUES (?, ?)', [username, hashedPassword], (err) => {
        if (err) return res.status(500).send(err);
        res.status(200).send('User registered');
    });
});

app.post('/login', (req, res) => {
    const { username, password } = req.body;
    db.query('SELECT * FROM users WHERE username = ?', [username], async (err, results) => {
        if (err) return res.status(500).send(err);
        if (results.length === 0 || !(await bcrypt.compare(password, results[0].password))) {
            return res.status(401).send('Invalid credentials');
        }
        const token = jwt.sign({ id: results[0].id }, 'your_jwt_secret', { expiresIn: '1h' });
        res.status(200).json({ token });
    });
});

app.listen(3000, () => {
    console.log('Server running on port 3000');
});


Veritabanı Yönetimi

MySQL veya MariaDB kullanarak kullanıcı verilerini saklamak için öncelikle bir veritabanı ve kullanıcı tablosu oluşturmalısınız. Aşağıdaki SQL komutu, kullanıcı tablosunu oluşturmak için kullanılabilir:

CODE
123456
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL
);


Bu yapıyı kullanarak, botunuz için kullanıcı kimlik doğrulama ve veri yönetimi süreçlerini güvenli bir şekilde gerçekleştirebilirsiniz. JWT ile kullanıcıların kimlik bilgilerini koruyarak, botunuzda daha güvenli bir deneyim sunmuş olursunuz.

Sonuç olarak, Express.js ve JWT ile Discord botu için temel bir kimlik doğrulama sistemi kurmak oldukça basittir. Veritabanı yönetimi ve güvenlik konularında daha ileri seviye uygulamalar geliştirmek mümkündür. Bu konuda fikirlerinizi ve deneyimlerinizi paylaşabilirsiniz.

You must be logged in to reply.

0 quotes selected