Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Laravel Visitor Fingerprint

Laravel Visitor Fingerprint Laravel Package

jeffersongoncalves/laravel-visitor-fingerprint

A Laravel package for generating and managing visitor fingerprints, letting you recognize returning visitors and track unique sessions without relying only on cookies. Simple to install and integrate, with a clean API for storing fingerprint data and extending behavior in any Laravel app.

View on GitHub
Deep Wiki
Context7

A zero-domain-knowledge visitor-fingerprinting toolkit for Laravel: device/browser/OS detection, IP anonymization, bot detection, GeoIP, VPN/proxy/Tor detection, and GDPR export/erasure

Frequently asked questions about Laravel Visitor Fingerprint
How do I install and configure laravel-visitor-fingerprint?
Install it with composer require jeffersongoncalves/laravel-visitor-fingerprint, then publish the package assets with php artisan vendor:publish and run php artisan migrate for the fingerprint table. The package follows the conventional Laravel shape: a service provider, a publishable config file, and a migration. In the spike, dry-run the migration against a schema-identical staging database and check the index length on the hashed column, since long utf8mb4 indexes are a common MySQL failure point. Only then wire the middleware into your stack and start recording traffic.
Which Laravel and PHP versions does this visitor fingerprint package support?
The release notes for v1.0.5 do not state a compatibility matrix, so read the constraints in composer.json at the tagged release before committing. Expectation is Laravel 10, 11 or 12 on PHP 8.1 or newer, but that must be verified rather than assumed. Run composer require on a throwaway branch against your exact Laravel and PHP versions and pin the tag rather than floating dev-main.
Do I need user consent to use visitor fingerprinting under GDPR?
Device fingerprinting is generally treated as personal data under GDPR and falls under the ePrivacy Directive's consent requirement for storing or accessing information on a user's device, and storing IP addresses alongside it compounds the exposure. The package does not appear to ship consent gating, so you must build the consent decision around it before production traffic hits it. It does include GDPR export and erasure helpers, which cover subject access and deletion requests but do not replace a lawful basis. Get this reviewed by whoever owns privacy in your organisation before rollout.
Does visitor fingerprinting run server-side, or does it need a JavaScript snippet?
This package builds the fingerprint from request attributes such as the IP address, user agent and headers, so generation is server-side and no client-side script is implied. That keeps the Content Security Policy story simple and avoids shipping code to the browser. If you layer client-side entropy on top later, the consent and CSP analysis changes, so confirm the exact attribute list with the maintainer.
What does the package store: raw IP addresses or just the hash, and for how long?
The package advertises IP anonymization, but whether it persists the raw address, the anonymized address, the hash, or all three is a configuration detail you should confirm by reading the published config and migration. The release scope shows no pruning or retention tooling, and fingerprint tables grow roughly in line with traffic. Plan a scheduled cleanup job and a documented retention window before you enable it on a busy application.
Is the fingerprint hash salted per installation, and can the salt be rotated?
This is one of the open questions to put to the maintainer: which attributes feed the hash, whether an application-specific salt is applied, and whether that salt can be rotated without breaking historical matching. Read the published config file first, since an app key or dedicated salt option is usually exposed there. If the salt can be rotated, decide in advance what that means for existing records and for any guest-to-user stitching logic that depends on stable matches.
How reliable are visitor fingerprints now that Safari, Firefox and Brave block fingerprinting?
Client-side entropy sources are actively degraded by Safari's ITP, Firefox's resistFingerprinting, Brave's shielding and Chrome's Privacy Sandbox work, and match rates will keep drifting downward and will vary by audience. Treat a fingerprint as a probabilistic signal for de-duplication and analytics, never as a stable user identifier. Any logic that merges or splits identities on a fingerprint match should have a fallback, such as a first-party cookie or an authenticated ID, when a reliable one exists.
Where should the fingerprint middleware sit relative to session and auth middleware in Laravel?
Ordering matters mainly if you plan to stitch guest fingerprints to authenticated users, because the fingerprint must be resolved before you associate it with a logged-in account. Register it after the session and auth middleware but before anything that consumes the fingerprint. Write an integration test that asserts the behaviour under both guest and authenticated requests, and avoid letting the package sit in a position where it owns or short-circuits the request lifecycle.
How do I test visitor fingerprinting in my Laravel test suite?
Assert on the persisted records rather than on internal hashing details: send test requests with faked headers, user agent and REMOTE_ADDR, then check the rows written to the fingerprint table. Use Laravel's HTTP testing helpers with server variables to simulate different IPs and clients, and cover the bot-detection and anonymization paths explicitly. There is no confirmed CI badge or published test suite for the package itself, so your own tests are the safety net when you upgrade.
Is this package actively maintained, and what are the alternatives?
It is a single-maintainer package with a bus factor of one, and the v1.0.5 release notes are an empty changelog comparison link with no commit summary or upgrade instructions, so read the 1.0.4 to 1.0.5 diff before pinning. That is acceptable for non-critical telemetry but risky for anything treated as an identity primitive. If you need stronger guarantees, compare against browser-side fingerprinting libraries such as FingerprintJS, a privacy-first analytics platform like Matomo or Plausible, or a small in-house hash of the same request attributes, which is often all a de-duplication use case needs.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox