Tips Implementing JWT Authentication in Node.js

heavyrabbit397

New member
[TIẾNG VIỆT]:
## Thực hiện xác thực JWT trong Node.js

Mã thông báo JSON Web (JWTS) là một cách phổ biến để xác thực người dùng trong các ứng dụng web.Chúng là một cách nhỏ gọn và an toàn để trao đổi thông tin giữa các bên.Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thực hiện xác thực JWT trong ứng dụng Node.js.

### Điều kiện tiên quyết

Để làm theo hướng dẫn này, bạn sẽ cần những điều sau đây:

* Một sự hiểu biết cơ bản về Node.js
* Trình chỉnh sửa văn bản hoặc IDE
* Khung [Express] (Express - Node.js web application framework)
* Thư viện [JWT] (JWT.IO)

### Tạo một dự án mới

Đầu tiên, chúng ta cần tạo một dự án Node.js mới.Chúng ta có thể làm điều này bằng cách sử dụng lệnh sau:

`` `
NPM init
`` `

Điều này sẽ tạo một thư mục mới có tên là `my-app` và một tệp có tên là` pack.json`.Tệp `pack.json` được sử dụng để quản lý các phụ thuộc của dự án của bạn.

### Cài đặt các phụ thuộc

Tiếp theo, chúng tôi cần cài đặt các phụ thuộc cho dự án của chúng tôi.Chúng ta có thể làm điều này bằng cách sử dụng lệnh sau:

`` `
NPM Cài đặt Express JWT
`` `

Điều này sẽ cài đặt các thư viện Express và JWT.

### Tạo các tuyến đường

Bây giờ chúng ta cần tạo các tuyến đường cho ứng dụng của chúng tôi.Chúng ta có thể làm điều này bằng cách tạo một tệp có tên là `Roule.js`.Mã sau đây hiển thị các tuyến đường cho ứng dụng của chúng tôi:

`` `JS
const express = yêu cầu ('express');
const router = express.router ();
const jwt = yêu cầu ('jwt');

// Tuyển đường đăng nhập
router.post ('/login', async (req, res) => {
// Nhận tên người dùng và mật khẩu từ cơ quan yêu cầu
const {tên người dùng, mật khẩu} = req.body;

// Kiểm tra xem tên người dùng và mật khẩu có hợp lệ không
if (username === 'admin' && password === 'password') {
// Tạo mã thông báo JWT
const token = jwt.sign ({username}, 'bí mật', {expiresin: '1h'});

// trả mã thông báo JWT cho máy khách
res.Status (200) .json ({mã thông báo});
} khác {
// Trả lại lỗi cho máy khách
res.Status (401) .json ({error: 'tên người dùng hoặc mật khẩu không hợp lệ'});
}
});

// tuyến đường được bảo vệ
bộ định tuyến.get ('/bảo vệ', async (req, res) => {
// Kiểm tra xem người dùng có được xác thực không
if (req.headers.Authorization) {
// Nhận mã thông báo JWT từ tiêu đề ủy quyền
const token = req.headers.Authorization.split ('') [1];

// Xác minh mã thông báo JWT
thử {
const được giải mã = jwt.verify (mã thông báo, 'bí mật');

// Mã thông báo JWT có giá trị, vì vậy người dùng được xác thực
res.status (200) .json ({tin nhắn: 'bạn được xác thực'});
} bắt (lỗi) {
// Mã thông báo JWT không hợp lệ, vì vậy người dùng không được xác thực
res.Status (401) .json ({error: 'mã thông báo jwt không hợp lệ'});
}
} khác {
// Người dùng không được xác thực, vì vậy hãy trả lại lỗi trái phép
res.Status (401) .json ({error: 'trái phép'});
}
});

Mô -đun.exports = bộ định tuyến;
`` `

### Bắt đầu máy chủ

Bây giờ chúng ta có thể khởi động máy chủ.Chúng ta có thể làm điều này bằng cách chạy lệnh sau:

`` `
Node Server.js
`` `

Máy chủ sẽ bắt đầu trên cổng 3000. Bạn có thể kiểm tra ứng dụng bằng cách truy cập URL sau trong trình duyệt của mình:

`` `
http: // localhost: 3000/đăng nhập
`` `

Nhập tên người dùng `admin` và mật khẩu` password`.Nếu đăng nhập thành công, bạn sẽ được chuyển hướng đến tuyến `/được bảo vệ`.

### Phần kết luận

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách thực hiện xác thực JWT trong ứng dụng Node.js.JWT

[ENGLISH]:
## Implementing JWT Authentication in Node.js

JSON Web Tokens (JWTs) are a popular way to authenticate users in web applications. They are a compact and secure way to exchange information between parties. In this tutorial, we will show you how to implement JWT authentication in a Node.js application.

### Prerequisites

To follow this tutorial, you will need the following:

* A basic understanding of Node.js
* A text editor or IDE
* The [Express](https://expressjs.com/) framework
* The [JWT](https://jwt.io/) library

### Creating a new project

First, we need to create a new Node.js project. We can do this using the following command:

```
npm init
```

This will create a new directory called `my-app` and a file called `package.json`. The `package.json` file is used to manage the dependencies of your project.

### Installing the dependencies

Next, we need to install the dependencies for our project. We can do this using the following command:

```
npm install express jwt
```

This will install the Express and JWT libraries.

### Creating the routes

Now we need to create the routes for our application. We can do this by creating a file called `routes.js`. The following code shows the routes for our application:

```js
const express = require('express');
const router = express.Router();
const jwt = require('jwt');

// Login route
router.post('/login', async (req, res) => {
// Get the username and password from the request body
const { username, password } = req.body;

// Check if the username and password are valid
if (username === 'admin' && password === 'password') {
// Create a JWT token
const token = jwt.sign({ username }, 'secret', { expiresIn: '1h' });

// Return the JWT token to the client
res.status(200).json({ token });
} else {
// Return an error to the client
res.status(401).json({ error: 'Invalid username or password' });
}
});

// Protected route
router.get('/protected', async (req, res) => {
// Check if the user is authenticated
if (req.headers.authorization) {
// Get the JWT token from the authorization header
const token = req.headers.authorization.split(' ')[1];

// Verify the JWT token
try {
const decoded = jwt.verify(token, 'secret');

// The JWT token is valid, so the user is authenticated
res.status(200).json({ message: 'You are authenticated' });
} catch (error) {
// The JWT token is invalid, so the user is not authenticated
res.status(401).json({ error: 'Invalid JWT token' });
}
} else {
// The user is not authenticated, so return an unauthorized error
res.status(401).json({ error: 'Unauthorized' });
}
});

module.exports = router;
```

### Starting the server

Now we can start the server. We can do this by running the following command:

```
node server.js
```

The server will start on port 3000. You can test the application by visiting the following URL in your browser:

```
http://localhost:3000/login```

Enter the username `admin` and password `password`. If the login is successful, you will be redirected to the `/protected` route.

### Conclusion

In this tutorial, we showed you how to implement JWT authentication in a Node.js application. JWT
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top