feat(settings): API token management UI for users

Adds a "API Tokens" settings page so an authenticated user can create and
revoke Sanctum personal access tokens for the new authenticated write
endpoints — using the official Sanctum API ($user->createToken() / tokens()).

- New Volt component settings/api-tokens (create token, one-time plain-text
  reveal with copy-to-clipboard, list + revoke own tokens).
- Registered route settings.api-tokens (country-prefixed, auth group) and
  added a nav entry in the settings layout.
- SEO definition for the new page.
- Pest feature tests (create/reveal-once, validation, revoke, ownership
  scoping) and a Pest browser screenshot test.
This commit is contained in:
HolgerHatGarKeineNode
2026-06-07 22:56:28 +02:00
parent a3062f6c4e
commit 4c81e20529
6 changed files with 260 additions and 0 deletions
+10
View File
@@ -200,6 +200,14 @@ class SeoDataAttribute
twitter_username: $domainTwitter,
site_name: $domainSiteName,
),
'settings_api_tokens' => new SEOData(
title: __('API Tokens - Einstellungen'),
description: __('Verwalte deine persönlichen Zugriffstokens für den programmatischen API-Zugriff auf dein Bitcoin Meetup Konto.'),
author: $domainAuthor,
image: $domainImage,
twitter_username: $domainTwitter,
site_name: $domainSiteName,
),
'settings_delete_user_form' => new SEOData(
title: __('Konto löschen - Bitcoin Meetups'),
description: __('Informationen zum Löschen deines Bitcoin Meetup Kontos.'),
@@ -298,6 +306,7 @@ class SeoDataAttribute
if (empty(self::$seoDefinitions)) {
self::initDefinitions();
}
return self::$seoDefinitions[$key] ?? self::$seoDefinitions['default'];
}
@@ -307,6 +316,7 @@ class SeoDataAttribute
if ($this->key) {
return self::getData($this->key);
}
return self::getData('default'); // Fallback
}
}