Giới thiệu thư viện trợ giúp định danh người dùng - FingerprintJS

Giới thiệu thư viện trợ giúp định danh người dùng - FingerprintJS

Tin ngắn hàng ngày dành cho bạn
  • Cuối tuần đang ngồi làm cái Cửa hàng cho thư giãn mọi người ạ. Trước mình đã làm một lần rồi cơ mà làm cho có, bán được hẳn 1 cuốn sách 😆

    Giờ làm lại, sẽ đa dạng sản phẩm hơn. Dự là đăng mấy sản phẩm đã mua và dùng rồi kèm theo vài dòng nhận xét cho mọi người tham khảo 🤓

    » Xem thêm
  • Một bài viết thú vị về cách làm thế nào để viết blog cho lập trình viên đọc.

    How to Write Blog Posts that Developers Read

    Tóm tắt lại là đi thẳng vào vấn đề và hình dung ra đối tượng độc giả mà bạn đang nhắm đến. Một điều nữa là tác giả đã có hơn 9 năm kinh nghiệm viết, thời gian đầu không ai đọc nhưng sự kiên trì đã giúp anh đạt được mốc 300K - 500K độc giả mỗi năm. Quả là con số ấn tượng phải không ạ 🔥

    » Xem thêm
  • Bây giờ hiện đại quá cái gì người ta cũng có thể nghĩ ra được. ferretdb.com là một dự án mã nguồn mở, biến cơ sở dữ liệu PostgreSQL thành... MongoDB. Đúng vậy bạn không nghe nhầm đâu. Nếu vẫn muốn dùng Postgres mà thích cú pháp truy vấn của Mongo thì ferretdb là dành cho bạn.

    À ngoài PostgreSQL ra thì còn có thể cắm vào SQLite nữa. Xịn!!! 🙏

    » Xem thêm

Vấn đề

Chúng ta luôn muốn biết có bao nhiêu người sử dụng trang web, theo dõi lượt truy cập hay là cần xác định được phiên của người dùng duy nhất.

Có một cách đơn giản để làm điều đó là yêu cầu người dùng đăng nhập, lúc đó chúng ta dễ dàng bắt được phiên thông qua ID người dùng đã lưu trong hệ thống. Cách này tốt nhưng không phải lúc nào cũng có thể bắt người dùng đăng nhập. Vì thế chúng ta cần tìm ra một giải pháp thay thế chức năng đăng nhập để định danh người dùng.

FingerprintJS là gì

FingerprintJS là một thư viện giúp nhận dạng thiết bị có độ chính xác cao nhất cho thiết mobile và web. FingerprintJS hỗ trợ định danh đa nền tảng từ Android, IOS đến Trình duyệt web.

Chúng ta biết rằng trình duyệt là cầu nối cho người dùng sử dụng trang web. Bản thân trình duyệt chứa rất nhiều thông tin về chính nó cũng như thông tin người dùng như loại trình duyệt, phiên bản, kích thước hiển thị, hệ điều hành, địa chỉ IP... và rất nhiều những thông tin nữa. Hãy truy cập vào https://coveryourtracks.eff.org để biết thêm những thông tin trình duyệt có thể "lấy" từ bạn. Những thông tin đó nếu được khai thác và xử lý hợp lý có thể cho ra một định danh duy nhất cho người dùng đang sử dụng.

Có thể chúng ta đã từng đối mặt với vấn đề cần định danh được người dùng mà không cần thông qua chức năng đăng nhập. Vì thế ta cần tìm cách để đánh dấu được người dùng đã từng sử dụng ứng dụng hay chưa. Một cách đơn giản là sinh ra một chuỗi định danh ngẫu nhiên rồi lưu vào Cache. Cách làm này nhanh và dễ nhất nhưng nếu xoá Cache thì mọi thứ lại như mới. Do đó chúng ta cần một giải pháp định danh người dùng tốt hơn.

Bạn có thể tự tạo thuật toán để tạo ra định danh dựa trên những dữ liệu thu thập được từ trình duyệt hoặc sử dụng thư viện FingerprintJS để làm điều đó. FingerprintJS có hai phiên bản là Open Source và Pro. Đối với phiên bản Open Source độ chính xác theo họ công bố là lên tới 60% còn với Pro thì lên đến 99.5%. Tuy nhiên khi dùng Pro bạn sẽ phải gọi đến server của FingerprintJS để tiến hành định danh và giới hạn 20.000 request mỗi tháng. Nếu quá số lượng đó thì bạn cần trả thêm tiền để sử dụng.

FingerprintJS sẽ tính toán dựa trên những dữ liệu thu thập được để đưa ra một chuỗi định danh người dùng như là:

x6e9RzbUC2P96yckcMih

Cách sử dụng

FingerprintJS cung cấp nhiều cách sử dụng khác nhau.

Sử dụng qua CDN:

  const fpPromise = import('https://openfpcdn.io/fingerprintjs/v3')
    .then(FingerprintJS => FingerprintJS.load())

  fpPromise
    .then(fp => fp.get())
    .then(result => console.log(result.visitorId))

Hoặc thông qua npm:

npm i @fingerprintjs/fingerprintjs
import FingerprintJS from '@fingerprintjs/fingerprintjs'

const fpPromise = FingerprintJS.load();

(async () => {
  const fp = await fpPromise
  const result = await fp.get()
  console.log(result.visitorId)
})()

Để sử dụng phiên bản Pro, bạn truy cập vào FingerprintJS đăng ký tài khoản, sau đó hệ thống sẽ hiển thị mã code để gắn vào trang web.

FingerprintJS tracking code

Tổng kết

FingerprintJS là một giải pháp để định danh người dùng nhanh chóng với độ chính xác cao mà không cần đăng nhập. Blog của tôi cũng đang sử dụng FingerprintJS để mang lại trải nghiệm tốt nhất cho người đọc. Nếu dự án tiếp theo của bạn có yêu cầu tracking người dùng mà không đăng nhập thì bạn biết phải làm gì rồi chứ!

Cao cấp
Hello

5 bài học sâu sắc

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (2)

Nội dung bình luận...
Avatar
Ẩn danh1 năm trước
Lúc trước mình nhớ bên này ra mắt tool anti browers mà nhỉ giờ tìm mãi không ra hay do nó đổi thành dự án này rồi nhỉ
Trả lời
Avatar
Xuân Hoài Tống1 năm trước
Thế ạ, mình cũng chỉ nghe đến thư viện này giúp định danh trình duyệt. Nhưng vừa rồi họ mới chấm dứt bản miễn phí và bắt trả phí rồi, thế là đành phải chuyển qua phiên bản open source với độ chính xác thấp hơn chỉ khoảng 60% theo họ nói.
Avatar
Gin Na2 năm trước
@gif [tIeCLkB8geYtW] Thư viện hay, phải login vào cmt cho bạn
Trả lời
Avatar
Xuân Hoài Tống2 năm trước
Cảm ơn bạn đã tạo động lực cho mình