Site Registration Approvals & Online Account Audit¶
Guardian can detect when a managed child attempts to sign up for a new online account on any website and block the registration until a parent or guardian explicitly approves it. At the same time, the extension passively records login events to build an inventory of websites and services the child already has accounts on.
Platform availability
Site Registration Approvals and Online Account Audit require the Guardian browser extension (Chrome, Brave, or Edge) and the Linux or Windows agent running on the managed device. Android and console platforms are not covered by this feature.
How it works¶
1. Signup detection¶
When the Guardian browser extension loads on any web page, it runs a detection pass across five complementary signal layers, stopping as soon as any layer matches:
- URL heuristics — paths containing
/signup,/register,/join,/create-account, etc. are flagged immediately without inspecting the DOM. autocomplete="new-password"— the most reliable single signal. The HTML spec requires registration forms to set this attribute on new-password fields (andcurrent-passwordon login fields). All major services follow this convention: Google, GitHub, Facebook, DigitalOcean, and more.- Multiple password fields — a password field alongside a confirm-password field is a clear registration indicator.
- Registration-specific form fields — fields for first/last name, phone number, or date of birth (
autocomplete="given-name",autocomplete="bday",input[type="tel"], etc.) are essentially never present on login forms. - Page-level text — headings (
h1–h3), submit buttons, and navigation links are scanned for text such as Sign Up, Create Account, Join, or Register.
If the page matches, the extension immediately asks the native agent (com.guardian.agent) whether registration on that domain is currently allowed for this user.
2. Approval check¶
The agent calls /api/registration/check on the Guardian server using the device's secure token. The server returns one of three states:
| Response | Meaning |
|---|---|
allowed: true |
Registrations are not enforced, or a prior approval grant exists — page loads normally. |
allowed: false, pending: true |
A previous request is still awaiting approval. |
allowed: false, pending: false |
No request has been submitted yet. |
3. Block page redirect¶
If the response indicates the registration is blocked, the extension redirects the tab to the Guardian Space overlay (blockedv2.html). The child sees a clear, friendly explanation and a Request Sign-up Approval button:
- Request Sign-up Approval — sends a
REQUEST_REGISTRATIONmessage to the agent, which creates a pendingApprovalRequestin the Guardian server. The parent sees a Site Sign-Up badge in the Access Requests panel. - The page polls automatically every 10 seconds and whenever the browser tab regains focus to detect approval.
Once the parent approves the request in the admin panel, the overlay detects the approval on the next poll and automatically redirects the child back to the original sign-up URL.
Enabling sign-up approvals¶
- Navigate to Admin → Users → [child account] → Mappings.
- Expand the mapping for the managed device.
- Under Access Approval Policies, enable the Enforce Sign-up Approvals toggle.
- Click Save Approval Settings.
The setting takes effect immediately — no agent restart is required.
Online Account Audit¶
In addition to blocking registrations, the extension passively monitors login form submissions to build a catalogue of websites the child already has accounts on.
How login events are captured¶
When a page contains exactly one password field and does not match the signup heuristics above (indicating a login, not a registration), the extension attaches a listener to the login form's submit event. On submission it captures:
- The domain (
window.location.hostname). - The username or email typed into the form's text/email input.
Privacy guarantee
The password field value is never read or transmitted. Only the plaintext username or email is recorded.
The captured data is forwarded to the agent via a LOGIN_DETECTED message, which calls /api/registration/log-login. The server inserts or updates a row in the UserOnlineAccount table, recording:
| Field | Description |
|---|---|
| Service Domain | Hostname of the site |
| Username / Email | Value from the login form |
| First Detected | Timestamp of the first observed login |
| Last Active | Timestamp of the most recent login |
Viewing the report¶
Navigate to Admin → Users → [child account] → Online Accounts, or open Activity → Online accounts from the child's dashboard card. The page displays a searchable, sortable table of all recorded accounts. Use the search bar to filter by domain or username.
Handling approval requests¶
Pending site sign-up requests appear in the global Access Requests list alongside time extension, app access, and domain unblock requests. They are identified by the Site Sign-Up amber badge.
To approve or deny:
- Go to Admin → Access Requests.
- Find the entry with the Site Sign-Up badge and the relevant domain.
- Click Approve to grant a one-time or persistent registration grant, or Deny to reject it.
Once approved, the child's browser block page will detect the grant within 10 seconds and redirect automatically.
Architecture overview¶
Child's Browser (Extension)
│
▼
content.js — detects signup/login pages
│
▼ (chrome.runtime.sendMessage)
background.js — routes CHECK_REGISTRATION / REQUEST_REGISTRATION / LOGIN_DETECTED
│
▼ (Native Messaging: com.guardian.agent)
Guardian Rust Agent
│
▼ (HTTPS with device token)
Guardian Server REST API
├─ GET /api/registration/check → allowed / pending / blocked
├─ POST /api/registration/request → creates ApprovalRequest
└─ POST /api/registration/log-login → upserts UserOnlineAccount
Platform requirements¶
| Component | Requirement |
|---|---|
| Browser extension | Guardian extension v0.57.0+ |
| Supported browsers | Chrome, Brave, Edge (Chromium) |
| Native agent | Guardian Linux or Windows agent v0.57.0+ |
| Server | Guardian server v0.57.0+ |
Related guides¶
- Access Requests — approving and denying child requests
- Browser Restrictions — extension-based browser policies
- Web & Video History — browsing and YouTube history monitoring
- Child Accounts & Mappings — per-mapping policy settings