Hướng dẫn authentication reactjs nodejs - xác thực reactjs nodejs
Hôm nay chúng ta sẽ tiếp tục serie Node JS + React JS với chủ đề là authentication + authorization Hôm nay chúng ta cùng đi tìm hiểu hai khái niệm cơ bản là Authentication và Authorization, cũng như tìm hiểu về cách implement nó trong ứng dụng NodeJS sẽ như thế nào nhé (go) Giới thiệuBài viết sẽ tập trung vào phía backend với các follow basic nhất như đăng ký, đăng nhập, cách trả về token cho client ... Ở chức năng này thì chúng ta cần viết các api sau:
AuthenticationAuthentication chỉ việc xác thực người dùng, định danh được một người dùng trong hệ thống thông qua đăng nhập, việc định danh có thể thông qua email, user name, số điện thoại ... độc nhất và đại diện cho người dùng đó trong hệ thống. Authentication tóm tắt cho câu hỏi: Who are you?Who are you?Who are you? AuthorizationAuthorization thì là bước xác định người dùng đó có quyền gì trong hệ thống, sau khi user Authentication thành công, người đó sẽ có quyền truy cập những tài nguyên nào chính là chỉ việc Authorization. Còn Authorization tóm tắt cho câu hỏi : What are you allowed to do?What are you allowed to do?What are you allowed to do? Bắt đầu thôi ! Follow cơ bản sẽ là:
RegisterChúng ta sẽ implement api đơn giản với việc đăng ký bằng email + password Ở model user, chúng ta cần một hàm static để hash password mà user set, sử dụng Bcrypt để hash pasword nhé mọi người.
Ở controller UserController, chúng ta cần viết hàm để đăng ký tài khoản cũng như hàm để lấy thông tin user Đầu tiên là hàm register, ở hàm này chúng ta lấy thông tin email + password để tạo account, đồng thời cấp token cho client. Client sẽ cần lưu lại token này ở browser, sử dụng nó gắn vào mỗi request headers khi gọi api.
Hàm generateJWTToken() chúng ta trả về token chứa gì trong đó ?
Mọi người có thể tìm hiểu thêm về Jwt ở đây nhé https://jwt.io/introduction , https://viblo.asia/p/tim-hieu-ve-json-web-token-jwt-7rVRqp73v4bP Ở đây mình sẽ dùng package
LoginVới login thì chúng ta cần kiểm tra email và password mà user truyền lên. Nếu hợp lệ thì trả về token còn không sẽ bắn lỗi.
AuthenticationAuthentication chỉ việc xác thực người dùng, định danh được một người dùng trong hệ thống thông qua đăng nhập, việc định danh có thể thông qua email, user name, số điện thoại ... độc nhất và đại diện cho người dùng đó trong hệ thống. Authentication tóm tắt cho câu hỏi: Who are you?Who are you? Authorization
AuthorizationAuthorization thì là bước xác định người dùng đó có quyền gì trong hệ thống, sau khi user Authentication thành công, người đó sẽ có quyền truy cập những tài nguyên nào chính là chỉ việc Authorization.
Còn Authorization tóm tắt cho câu hỏi : What are you allowed to do?What are you allowed to do? Bắt đầu thôi ! Follow cơ bản sẽ là:
Người dùng đăng ký tài khoản Người dùng đăng nhập, server trả về token Client sử dụng token này để authentication + authorization Register Chúng ta sẽ implement api đơn giản với việc đăng ký bằng email + password Ở model user, chúng ta cần một hàm static để hash password mà user set, sử dụng Bcrypt để hash pasword nhé mọi người.
|