Lập trình quán

Thảo luận về lập trình

Sử dụng cookies để triển khai chức năng Remember Me

Posted by thinhnv2 on May 12, 2013

Một vài ứng dụng web có thể cần chức năng ‘Remember Me’. Điều này có nghĩa là sau khi người sử dụng đăng nhập, người sử dụng từ cùng một máy có thể truy cập tới tất cả dữ liệu của mình thậm chí sau khi session hết hạn. Việc truy cập này là có thể cho đến khi người sử dụng thoát ra khỏi chương trình.
Nếu bạn đang sử dụng Spring và form đăng nhập của nó, thì lúc đó bạn nên sử dụng chức năng ‘Remember Me’ đã được triển khai sẵn trong framework.
Nhưng trong tình huống bạn phải tự mình triển khai chức năng ‘Remember Me’ , điều này có thể đạt được dễ dàng sử dụng Cookies. Java có một lớp tên là javax.servlet.http.Cookie
Thuật toán đơn giản:

1. Form login của bạn phải có checkbox ‘Remember Me’
2. Sau khi đăng nhập thành công với Remember Me được chọn, bạn có thể tạo ra 2 cookies: một cái để giữ giá trị rememberMe(một dạng cờ true/false) và một cái giữ token để xác định người đã đăng nhập. Để an toàn, token này không bao giờ được chứa username hoặc password. Ý tưởng là phải sinh một id ngẫu nhiên như là token. Và giá trị token này phải được lưu trữ trong cơ sở dữ liệu.
3. Bất cứ khi nào việc đăng nhập là cần thiết, bạn phải kiểm tra xem liệu có bất cứ cookie nào được lưu trữ bởi bạn, và nếu như vậy và giá trị rememberMe là true, bạn có thể lấy người sử dụng từ cơ sở dữ liệu dựa trên giá trị token và thực hiện đăng nhập tự động.
4. Khi người sử dụng thoát ra, bạn phải xóa cookie lưu trữ token.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: