diff --git a/resources/views/livewire/profile/new-token-form.blade.php b/resources/views/livewire/profile/new-token-form.blade.php
new file mode 100644
index 0000000..49a8f2c
--- /dev/null
+++ b/resources/views/livewire/profile/new-token-form.blade.php
@@ -0,0 +1,101 @@
+loadTokens();
+ }
+
+ public function newToken(): void
+ {
+ $user = Auth::user();
+
+ // 從 Spatie 權限套件取得權限名稱作為 abilities
+ $abilities = $user->getAllPermissions()->pluck('name')->toArray();
+
+ $token = $user->createToken($this->tokenName, $abilities);
+
+ $this->token = $token->plainTextToken;
+ $this->loadTokens();
+
+ session()->flash('status', 'Token created!');
+ }
+
+ public function loadTokens()
+ {
+ $this->tokens = Auth::user()
+ ->tokens()
+ ->get()
+ ->map(function ($token) {
+ return [
+ 'name' => $token->name,
+ 'abilities' => $token->abilities,
+ 'last_used_at' => $token->last_used_at,
+ 'created_at' => $token->created_at->toDateTimeString(),
+ ];
+ })->toArray();
+ }
+
+ public function deleteToken($name)
+ {
+ Auth::user()->tokens()->where('name', $name)->delete();
+ $this->loadTokens();
+ }
+};
+?>
+
+
+ {{ __('Create a new personal access token.') }}
+ No tokens created yet.
+ {{ __('New API Token') }}
+
+
+ Existing Tokens ({{ count($tokens) }})
+
+ @forelse ($tokens as $token)
+