Posts

Showing posts from May, 2017

Xác thực trong NodeJS sử dụng JSON Web Token

Image
1. Giới thiệu JSON web token Xác thực dựa trên token nổi bật khắp mọi nơi trên ứng dụng web ngày nay. Với hầu hết mọi ứng dụng web sử dụng API, token là cách tốt nhất để xử lý xác thực cho nhiều người dùng. Xác thực dựa trên token là stateless: không lưu trữ bất kỳ thông tin nào về user trên server hoặc trong session. JSON Web Token (JWT) là 1 tiêu chuẩn mở (RFC 7519) định nghĩa cách thức truyền tin an toàn giữa các thành viên bằng một đối tượng JSON. Thông tin này có thể được xác thực và đánh dấu tin cậy nhờ vào "chữ ký" của nó. Phần chữ ký của JWT sẽ được mã hóa lại bằng HMAC hoặc RSA. JSON Web Token bao gồm 3 phần, được ngăn cách nhau bởi dấu chấm (.): Header Payload Signature 2. Xây dựng ứng dụng xác thực sử dụng JSON web token Chúng ta sẽ xây dựng một API sử dụng Nodejs và Express. Workflow chính gồm: Ứng dụng có các routes yêu cầu xác thực và không yêu cầu xác thực User sẽ xác thực bằng cách gửi username, password và nhận về token User lưu trữ token ...

So sánh giữa Node.js và Golang

Gần đây, đã có những lời chỉ trích về giá trị của việc sử dụng Node.js trong một môi trường ứng dụng mạng hiệu suất cao, và một số nhà phát triển đã chuyển sang ngôn ngữ Go. Ngoài ra cũng có một số tập đoàn lớn chuyển sang sử dụng Go, ngoài tác giả của ngôn ngữ này là Google. Dropbox đã chuyển sang Go, họ tuyên bố rằng hiệu suất tăng lên đáng kể, và các nhà phát triển của hệ thống ảo hóa Docker cũng đang sử dụng Go. Tuy nhiên, điều quan trọng cần lưu ý là Node.js vẫn đang được sử dụng rộng rãi hơn nhiều, có nhiều module hơn, dễ dàng sử dụng hơn, và nó sẽ chẳng đi đâu cả trong thời gian sắp tới. Ngoài ra, nếu bạn đang làm một ứng dụng web, Node.js có thể là ngôn ngữ mà bạn lựa chọn, còn Go hiện tại được sử dụng nhiều như là một ngôn ngữ kịch bản tập trung ưu tiên vào ứng dụng đồng thời (concurrency) và tốc độ. Trong bài viết này, chúng ta sẽ có một cái nhìn vào sự khác biệt giữa Node.js và Go từ góc nhìn của nhà phát triển để phát hiện ra những điểm mạnh và điểm yếu của từng môi ...

Viết integration test Nodejs with jasmine

Trong 1 lần tìm hiểu viết integration test cho ứng dụng nodejs, mình thấy có khá nhiều framework để test. Trong số đó được nhiều lập trinh viên sử dùng là mocha và jasmine. Jasmine là 1 behavior-driven development framework test cho Javascript. Nó không phụ thuộc vào việc bạn sử dụng framework javascript nào. Không yêu cầu DOM và dễ dàng viết test. Hôm nay mình sẽ viết bài hướng dẫn sử dụng jasmine để viết test cho NodeJs. 1.Cài đặt Add Jasmine vào file package.json: npm install jasmine --save-dev Khởi tạo jasmine trong project: jasmine init Khi bạn muốn chạy test ta sẽ chạy: jasmine 2. Viết test Jasmine là 1 thư viện vì vậy trong file test bạn sẽ khai báo trên đầu file var Jasmine = require ( 'jasmine' ); var jasmine = Jasmine(); Chúng ta sẽ setup vài ví dụ đơn giản để test hàm get server để đảm bảo rằng server sẽ trả ra HTTP status là 200 (OK) à nội dung của body là "hello world". Viết test bao gồm  describe  để miêu tả nội dung test giúp cho ...