bug fix for login and llm providers
This commit is contained in:
parent
24daddff7b
commit
e900ebc957
6 changed files with 125 additions and 8 deletions
|
|
@ -43,10 +43,32 @@ public function login(Request $request): JsonResponse
|
|||
'password' => 'required|string',
|
||||
]);
|
||||
|
||||
// 添加請求日誌
|
||||
Log::info('Login attempt details', [
|
||||
'email' => $validated['email'],
|
||||
'request_data' => $request->all()
|
||||
]);
|
||||
|
||||
/** @var Admin|null $admin */
|
||||
$admin = Admin::where('email', $validated['email'])->first();
|
||||
|
||||
// 添加用戶查詢日誌
|
||||
Log::info('Admin query result', [
|
||||
'admin_found' => $admin ? 'yes' : 'no',
|
||||
'admin_data' => $admin ? [
|
||||
'id' => $admin->id,
|
||||
'email' => $admin->email,
|
||||
'role' => $admin->role
|
||||
] : null
|
||||
]);
|
||||
|
||||
if (!$admin || !Hash::check($validated['password'], $admin->password)) {
|
||||
// 添加密碼驗證日誌
|
||||
Log::info('Password verification failed', [
|
||||
'has_admin' => $admin ? 'yes' : 'no',
|
||||
'password_check' => $admin ? Hash::check($validated['password'], $admin->password) : 'admin not found'
|
||||
]);
|
||||
|
||||
return $this->error(
|
||||
ErrorCode::INVALID_CREDENTIALS,
|
||||
ErrorCode::getMessage(ErrorCode::INVALID_CREDENTIALS)
|
||||
|
|
@ -71,6 +93,9 @@ public function login(Request $request): JsonResponse
|
|||
]);
|
||||
|
||||
} catch (ValidationException $e) {
|
||||
Log::error('Validation error during login', [
|
||||
'errors' => $e->errors(),
|
||||
]);
|
||||
return $this->error(
|
||||
ErrorCode::VALIDATION_ERROR,
|
||||
ErrorCode::getMessage(ErrorCode::VALIDATION_ERROR),
|
||||
|
|
@ -80,6 +105,8 @@ public function login(Request $request): JsonResponse
|
|||
Log::error('Error during admin login', [
|
||||
'error' => $e->getMessage(),
|
||||
'trace' => $e->getTraceAsString(),
|
||||
'file' => $e->getFile(),
|
||||
'line' => $e->getLine()
|
||||
]);
|
||||
|
||||
return $this->error(
|
||||
|
|
|
|||
|
|
@ -6,9 +6,12 @@
|
|||
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
|
||||
class Admin extends Authenticatable
|
||||
{
|
||||
use HasApiTokens;
|
||||
|
||||
/**
|
||||
* 管理员角色常量
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
"require": {
|
||||
"php": "^8.2",
|
||||
"laravel/framework": "^11.31",
|
||||
"laravel/sanctum": "^4.0",
|
||||
"laravel/tinker": "^2.9",
|
||||
"predis/predis": "^2.3"
|
||||
},
|
||||
|
|
|
|||
66
composer.lock
generated
66
composer.lock
generated
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "3c2add9f85c3cab994b57b6b8ff1eb72",
|
||||
"content-hash": "e7dd48d806ba5d560c773b49c46386e5",
|
||||
"packages": [
|
||||
{
|
||||
"name": "brick/math",
|
||||
|
|
@ -1326,6 +1326,70 @@
|
|||
},
|
||||
"time": "2024-11-12T14:59:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/sanctum",
|
||||
"version": "v4.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/sanctum.git",
|
||||
"reference": "fe361b9a63407a228f884eb78d7217f680b50140"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/sanctum/zipball/fe361b9a63407a228f884eb78d7217f680b50140",
|
||||
"reference": "fe361b9a63407a228f884eb78d7217f680b50140",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"illuminate/console": "^11.0",
|
||||
"illuminate/contracts": "^11.0",
|
||||
"illuminate/database": "^11.0",
|
||||
"illuminate/support": "^11.0",
|
||||
"php": "^8.2",
|
||||
"symfony/console": "^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.6",
|
||||
"orchestra/testbench": "^9.0",
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^10.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Laravel\\Sanctum\\SanctumServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Laravel\\Sanctum\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Taylor Otwell",
|
||||
"email": "taylor@laravel.com"
|
||||
}
|
||||
],
|
||||
"description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.",
|
||||
"keywords": [
|
||||
"auth",
|
||||
"laravel",
|
||||
"sanctum"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/sanctum/issues",
|
||||
"source": "https://github.com/laravel/sanctum"
|
||||
},
|
||||
"time": "2024-11-26T14:36:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
"version": "v2.0.0",
|
||||
|
|
|
|||
|
|
@ -40,6 +40,10 @@
|
|||
'driver' => 'session',
|
||||
'provider' => 'users',
|
||||
],
|
||||
'admin' => [
|
||||
'driver' => 'sanctum',
|
||||
'provider' => 'admins',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
@ -62,13 +66,12 @@
|
|||
'providers' => [
|
||||
'users' => [
|
||||
'driver' => 'eloquent',
|
||||
'model' => env('AUTH_MODEL', App\Models\User::class),
|
||||
'model' => App\Models\User::class,
|
||||
],
|
||||
'admins' => [
|
||||
'driver' => 'eloquent',
|
||||
'model' => App\Models\Admin::class,
|
||||
],
|
||||
|
||||
// 'users' => [
|
||||
// 'driver' => 'database',
|
||||
// 'table' => 'users',
|
||||
// ],
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -4,8 +4,27 @@ INSERT INTO `admins` (`username`, `email`, `password`, `role`, `created_at`, `up
|
|||
VALUES (
|
||||
'admin',
|
||||
'admin@cv6.me',
|
||||
'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', -- 'abc123' 的 bcrypt hash
|
||||
'$2y$12$co71F.UxUP.TGvI/fMD4JuYS.meR7yoKfPQjQ43hOF.NXIBDn5dRm', -- 'abc123' 的新 hash
|
||||
'super',
|
||||
CURRENT_TIMESTAMP,
|
||||
CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 插入預設的 LLM Provider
|
||||
INSERT INTO `llm_providers` (
|
||||
`name`,
|
||||
`service_name`,
|
||||
`api_url`,
|
||||
`api_token`,
|
||||
`status`,
|
||||
`created_at`,
|
||||
`updated_at`
|
||||
) VALUES (
|
||||
'OpenAI',
|
||||
'openai',
|
||||
'https://api.openai.com/v1',
|
||||
'sk-default-token',
|
||||
'active',
|
||||
CURRENT_TIMESTAMP,
|
||||
CURRENT_TIMESTAMP
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue