Xác thực người dùng bằng JWT
Chào bạn. Mình đã làm, và đang sử dụng + fix một số lỗi liên quan đến JWT, và sử dụng JWT để thực hiện xác thực người dùng. Về câu hỏi thứ nhất của bạn, thì đúng, chỉ cần kiểm tra trong chỗ bạn chỉ định lưu token (access token) để kiểm tra việc người dùng đã đăng nhập hay chưa là đủ. Câu hỏi thứ 2: thường, trong mỗi request gửi lên, thì server đều phải kiểm tra xem cái access token đó có hợp lệ hay không, nếu không hợp lệ thì trả về cho client một chuỗi tuỳ bạn, một status code mặc định (có thể do bạn quyết định status code đó là gì), và, cách kiểm tra thì bạn có thể xem cách JWT verify của từng ngôn ngữ. Như mình dùng nodejs thì có module jsonwebtoken, còn bạn dùng cái gì thì có thể tìm hiểu xem có những module, hoặc cách verify để tự viết ra một cái. Câu hỏi thứ 3: người dùng đúng là không cần phải đăng nhập nhiều lần trong khi access token có thời gian sống ngắn. Bạn có thể handle request gửi lên từ client, tuỳ theo server trả về từng status code bạn đã thiết lập. Ví dụ: khi server trả về status 200, nghĩa là mọi thứ bình thường, request được chấp nhận, xử lý và server trả về dữ liệu liên quan. Còn nếu server trả về 401, nghĩa là bạn chưa đăng nhập, và client sẽ phải gửi thêm một request khác để thực hiện quá trình refresh token, tạo token mới và thực hiện lại request trước đó. Câu hỏi 3a: lấy token mới khi access token cũ hết hạn. Câu hỏi 3b: sẽ kiểm tra thời gian hết hạn của access token. Thường các module hoặc plugin hoặc các thư viện (tuỳ vào việc bạn sử dụng ngôn ngữ nào) sẽ có các function để xác thực và tạo mới token. Cái này bạn cần đọc thêm tài liệu. Câu hỏi 3c: đúng là token chưa hết hạn, thì user luôn có quyền truy cập vào server nguồn. User thay đổi mật khẩu thường không liên quan tới token, trừ khi bạn config việc bắt buộc phải đăng nhập lại sau khi thay đổi mật khẩu (giống facebook làm). 3d: giống câu hỏi thứ 3. Bạn cần phải handle cách server trả về status code và cách client xử lý nó.
Chốt hạ: bạn cần đọc thêm tài liệu trước khi hỏi. Những câu hỏi này đều có sẵn câu trả lời khi bạn tìm hiểu kỹ hơn về json web token. Cảm ơn. Có thắc mắc gì có thể hỏi mình.
Cho mình hỏi về thực tập nodejs ạ?
bạn cảm thấy khả năng tư duy logic và giải quyết vấn đề của mình đủ ổn chứ? Đủ ổn là được. Vào có thể train thêm. Chủ yếu, cái quan trọng là cách tư duy và khả năng suy nghĩ + giải quyết vấn đề của mình thôi.
Tổ chức
Chưa có tổ chức nào.