Xác thực nodejs jwt
JSON Web Token (JWT) là một chuẩn mở (RFC 7519) được định nghĩa là một cách thu gọn và khép kín để truyền một cách an toàn thông tin giữa các bên dưới dạng đối tượng JSON. Thông tin này có thể được xác minh và đáng tin cậy vì nó có chứa các chữ số. JWT có thể được ký bằng thuật toán bí mật (với thuật toán HMAC) hoặc khóa công khai/riêng tư sử dụng mã hóa RSA Show Một ví dụ về JWT Token
Thoạt nhìn phức tạp là thế nhưng nếu hiểu, cấu trúc của JWT chỉ đơn giản như sau
Nói một cách khác, JWT là sự kết hợp (bằng dấu. ) Tiêu đề đối tượng dưới định dạng JSON được mã hóa base64, đối tượng tải trọng dưới định dạng JSON được mã hóa base64 và một Chữ ký cho URI cũng được mã hóa nốt base64 Giải thích thêm về 3 thành phần của JWTtiêu đềHeader bao gồm hai phần chính. loại mã thông báo (mặc định là JWT – Thông báo này cho biết đây là Mã thông báo JWT) và thuật toán được sử dụng để mã hóa (HMAC SHA256 – HS256 hoặc RSA)
Khối hàngTải trọng chứa các khiếu nại. Khiếu nại là một biểu thức về một thực thể (người dùng không giới hạn) và một số siêu dữ liệu phụ trợ. Có 3 loại yêu cầu thường gặp trong Payload. tuyên bố dành riêng, công khai và riêng tư Yêu cầu bảo lưu. This is a number metadata was known before, in that a number metadata is started, number but back should be follow to JWT hợp lệ và đầy đủ thông tin. iss (nhà phát hành), iat (thời điểm phát hành) exp (thời gian hết hạn), sub (chủ đề), aud (đối tượng), jti (Số nhận dạng duy nhất cho JWT, Có thể được sử dụng để ngăn JWT phát lại. Điều này hữu ích cho mã thông báo sử dụng một lần. ) … Ví dụ
Yêu cầu công khai – Yêu cầu được cộng đồng công nhận và sử dụng rộng rãi Khiếu nại riêng – Khiếu nại có định nghĩa riêng (không trùng với Khiếu nại dành riêng và Khiếu nại công khai), được tạo ra để chia sẻ thông tin giữa 2 bên thuận lợi và thống nhất trước đó Chữ kýChữ ký Chữ ký trong JWT là một chuỗi được mã hóa bởi tiêu đề, tải trọng cùng với một chuỗi bí mật theo nguyên tắc sau
Do bản thân Chữ ký đã bao gồm cả tiêu đề và trọng tải nên Chữ ký có thể được sử dụng để kiểm tra tính toàn vẹn của dữ liệu khi truyền tải Specify Nodejs with JWTCài đặt gói JWTjsonwebtoken là gói Node phát triển dựa trên 5Tạo mô hình người dùngTrong thư mục api/models folder, tạo một tệp 6. Nhưng các bạn đã biết, MongoDB cho phép chúng ta tạo một lược đồ và là nơi chúng ta có thể tạo tài liệu. Chúng ta sẽ sử dụng nó để tạo người dùng trực tiếp trong Tài liệu người dùng. Trong bài viết này chúng tôi sử dụng gói 7 của nodejs để tạo lược đồ với các thuộc tính như sau
Tạo phương thức cho người dùng (đăng nhập, đăng ký và yêu cầu đăng nhập)Trong thư mục api/bộ điều khiển tạo tệp 8 Trong tệp 9 chúng ta tạo xuất 3 thương thức khác nhau với NodeJS 2Trong phương thức đăng ký, chúng tôi tạo mô hình người dùng cá thể với Lược đồ người dùng và lưu trong MongoDB 3
Trong phương thức sign_in chúng ta thực hiện hoạt động đăng nhập. Đầu tiên, chúng ta kiểm tra xem người dùng đó có tồn tại trong cơ sở dữ liệu hay không thông qua email (chính). Nếu chúng ta kiểm tra mật khẩu mới theo phương thức 0 trong người dùng mô hình người dùng. Nếu trả lời thành công json với các tham số email, fullName, id (các tham số này đã được mã hóa khi truyền đến client). Nếu không khớp thì phản hồi trả về lỗi cho khách hàng với NodeJS 5Trong phương pháp kết thúc 1 phần mềm trung gian kiểm tra người dùng đã đăng nhập hay chưa. Phương thức này sẽ chạy đầu tiên thành công 2 sẽ chuyển hướng đến các hoạt động tiếp theo 0Tạo các tuyến người dùng NodeJSTrong thư mục api/routes tạo tệp 3. Đây là bộ định tuyến cho người dùng đăng ký, đăng nhập vào đăng nhập để cập nhật trên ứng dụng web của chúng tôi 1Đang cập nhật máy chủ. tệp js NodejsChúng ta tạo tệp 4. Tệp này chúng ta tạo Người dùng ngay lập tức và thiết lập phần mềm trung gian cho máy chủ cấp tốc để kiểm tra trạng thái của người dùng 2Sau đó chúng ta tạo phần mềm trung gian cho express, phải chắc chắn rằng phần mềm trung gian này chạy đầu tiên 3Như vậy chúng ta đã tạo xong server, model, controller. Bây giờ chúng ta khởi tạo máy chủ và kết hợp với người đưa thư để kiểm tra API chúng ta viết ra 4Đây là những thứ tự hình ảnh mà chúng tôi kiểm tra với người đưa thư Kết luậnNhư vậy chúng ta đã hiểu JWT là gì ? . Mong bạn có thể áp dụng vào project, app của bản thân |