Yêu cầu thg 3 13, 2020 5:08 SA 383 0 6
  • 383 0 6
+1

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

Chia sẻ
  • 383 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 CÂU TRẢ LỜI


Đã trả lời thg 3 15, 2020 10:54 SA
+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.
Chia sẻ
Avatar morikun @thanhnguyen
thg 3 16, 2020 4:08 SA

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 😄

Avatar Thanh Nguyen @adamhoang308
thg 3 16, 2020 6:34 SA
Đã trả lời thg 3 13, 2020 7:21 SA
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...

Chia sẻ
Avatar Yua Mikami @lutabra
thg 3 13, 2020 8:04 SA

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 ạ

Avatar bienhoang @bienhoang
thg 3 13, 2020 2:15 CH

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.

Avatar morikun @thanhnguyen
thg 3 16, 2020 4:06 SA

@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 😄

Đã trả lời thg 3 13, 2020 9:40 SA
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 😄

Chia sẻ
Đã trả lời thg 3 15, 2020 2:57 CH
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?

Chia sẻ
Đã trả lời thg 3 20, 2020 4:13 SA
0

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

Chia sẻ
Đã trả lời thg 3 20, 2020 10:56 SA
0

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

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí