Anonymous Authentication
Anonymous authentication allows users to access your application without providing credentials, while still maintaining a unique identity for each user.
Basic Usage
The context API provides a single method for anonymous authentication:
const authData = api.signInAnonymously()
This returns an AuthData
object containing the authentication token and user record:
{
token: "JWT_TOKEN_HERE",
record: {
id: "RECORD_ID",
email: "[email protected]",
verified: false,
// ... other user fields
}
}
Implementation Example
Here's a complete anonymous login implementation:
<script server>
let error = null
if (request.method === 'POST' && body().mode === 'anonymous') {
try {
const authData = signInAnonymously()
redirect('/')
} catch (e) {
error = e.message
}
}
</script>
<h3>Anonymous Login</h3>
<mark>(...objs) => {
const s = prepare(objs);
$app.logger().error(s);
}</mark>
<form method="post">
<input type="hidden" name="mode" value="anonymous" />
<button type="submit">Continue as Guest</button>
</form>
API Reference
signInAnonymously()
signInAnonymously(
options?: {
collection?: string // defaults to "users"
}
): AuthData
The signInAnonymously()
method:
- Creates a new user record with:
- Random email (format:
anonymous-{random}@example.com
) - Random password
- Unverified status
- Random email (format:
- Signs in the user automatically
- Sets the
pb_auth
cookie - Returns the auth data containing the token and user record
Configuration
Anonymous authentication requires password authentication to be enabled in PocketBase:
- Go to Settings > Auth Options
- Enable "Allow authentication with password"
Error Handling
Common errors to handle:
- Email generation conflicts
- Collection permission issues
- Rate limiting errors
Always wrap authentication operations in try/catch blocks and provide clear error messages to users.
Security Considerations
- Consider implementing rate limiting
- Set appropriate token expiration times
- Be cautious with anonymous user permissions
- Monitor anonymous user activity
- Consider implementing conversion flows to regular accounts
Best Practices
- Clearly indicate anonymous status to users
- Provide easy paths to convert to full accounts
- Consider data retention policies for anonymous accounts
- Handle token expiration gracefully
- Implement appropriate access controls