Asked Mar 13th, 2020 5:08 a.m. 274 0 6
  • 274 0 6
+1

Quản lý hạn chế 2 thiết bị đăng nhập

Share
  • 274 0 6

E đang sử dụng laravel.
Hiện tại e đang có 1 task về quản lý thiết bị khi đăng nhập trên web.
Chỉ cho phép 2 thiết bị được đăng nhập trên 1 tài khoản

Em đã thử các cách lưu lại quản lý:

  1. Sử dụng IP để phân biệt thiết bị mà thấy bật hợp lý khi họ di chuyển sử dụng mạng khác nhau
  2. Sử dụng User-Agent bất cập khi thay đổi trình duyệt
    Anh em có gợi ý nào cho việc quản lý giới hạn 2 thiết bị khi đăng nhập không ạ! Cảm ơn
    VD: Họ chỉ đăng nhập đc từ 1 PC A và 1 mobile A. sang PC B, mobile B đều k đăng nhập đc

6 ANSWERS


Answered Mar 15th, 2020 10:54 a.m.
+1

Mình nghĩ liệu có thể làm như sau:

  • Add thêm field count_device_logged_in (đếm số lượng device đã login) vào bảng users của bạn
  • Khởi tạo field trên bằng 0 cho mọi user
  • Mỗi lần đăng nhập thành công thì +1 cho field đó (update trong csdl)
  • Mỗi lần đăng xuất thành công thì -1 cho field đó (update trong csdl)
  • Khi đăng nhập mà user có field trên = 2 rồi thì không cho đăng nhập thêm.
Share
Avatar morikun @thanhnguyen
Mar 16th, 2020 4:08 a.m.

cách của bạn thì nếu sử dụng 1 device nhưng login trên 3 trình duyệt là ko đc rồi. Bài toán của bạn ấy khác 😄

0
| Reply
Share
Avatar Thanh Nguyen @adamhoang308
Mar 16th, 2020 6:34 a.m.
Answered Mar 13th, 2020 7:21 a.m.
0

Bạn đang dùng cơ chế gì để xác thực? Thiết bị muốn hạn chế là gì? PC, Laptop, Mobile...

Share
Avatar Yua Mikami @lutabra
Mar 13th, 2020 8:04 a.m.

E dùng đăng nhập mặc định của laravel thôi ạ!
Thiết bị muốn hạn chế bất cứ thiết bị nào đăng nhập trên website. Ví dụ dùng 1 PC và 1 Mobile chẳng hạn. Có gì để đánh dấu chúng nó không ạ

0
| Reply
Share
Avatar bienhoang @bienhoang
Mar 13th, 2020 2:15 p.m.

Mỗi lần đăng nhập Laravel sẽ tạo ra 1 session cho người dùng. Đơn giản là check xem lần login đó, session được tạo ra có vượt quá 2 không. Nếu vượt quá 2, thì xóa cái session cũ nhất đi và duy trì tối đa 2 session. Về lưu session thì có thể dùng db để lưu.

+2
| Reply
Share
Avatar morikun @thanhnguyen
Mar 16th, 2020 4:06 a.m.

@bienhoang Vấn đề là trên 1 máy, có thể dùng n browser nên phải cho phép nó có N session Mình thấy về phía trình duyệt thì khó có thể care đc chuyện này. Giá mà là phần mềm desktop thì khả năng có nhiều cách để đối ứng hơn 😄

0
| Reply
Share
Answered Mar 13th, 2020 9:40 a.m.
0

Câu này hơi khó à nha!
Mình cũng hóng! Phần mềm desktop thì còn có cách chứ trình duyệt thì hơi khó thật 😄

Share
Answered Mar 15th, 2020 2:57 p.m.
0

Bạn có thể thử tìm hiểu về website fingerprint, đại khái là nó sẽ lưu lại các thông số của trình duyệt (kích thước màn hình, ...) mà người dùng sử dụng, và nó là duy nhất đối với mỗi trình duyệt. Việc này có thể giới hạn được trình duyệt mà người dùng đăng nhập.

Còn để giới hạn được thiết bị đăng nhập thì chỉ có thể sử dụng địa chỉ MAC, cái này mình cũng chưa tìm hiểu nên không rõ có thực hiện được không?

Share
Answered Mar 20th, 2020 4:13 a.m.
0

Bạn tìm hiểu fingerprint nhé.

Share
Answered Mar 20th, 2020 10:56 a.m.
0

Bạn phải dùng cơ chế đăng nhập dùng token thì mới quản lý đc.

Share
Viblo
Let's register a Viblo Account to get more interesting posts.