Skip to content

Commit 8cf31bd

Browse files
committed
Refactor AuthController to enhance documentation and update file permissions
1 parent bf542f7 commit 8cf31bd

File tree

2 files changed

+40
-52
lines changed

2 files changed

+40
-52
lines changed

app/Http/Controllers/Api/AuthController.php

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,21 @@
1212

1313
class AuthController extends Controller
1414
{
15-
public function login(Request $request) // Request は引数 $request の型(型ヒント)$request が Request クラスのインスタンス
15+
/**
16+
* ログイン処理
17+
*
18+
* @param Request $request リクエストオブジェクト
19+
* - email (string, required): ユーザーのメールアドレス
20+
* - password (string, required): ユーザーのパスワード
21+
*
22+
* @return \Illuminate\Http\JsonResponse
23+
* - 200: 成功時 {'authToken': string, 'user': User}
24+
* - 400: このアカウントは Google アカウントでログインしてください。
25+
* - 401: ログイン情報が正しくありません。
26+
* - 422: バリデーションエラー {'message': string, 'errors': array}
27+
* - 500: サーバーエラー {'message': string}
28+
*/
29+
public function login(Request $request)
1630
{
1731
try {
1832
// 配列の各キーを値のルールでバリデーション
@@ -42,7 +56,8 @@ public function login(Request $request) // Request は引数 $request の型(
4256
/** @var User $user */
4357
$user = Auth::user();
4458

45-
/** Sanctum トークン発行
59+
/**
60+
* Sanctum トークン発行
4661
* createToken(name): トークン名を指定してトークンを発行
4762
* plainTextToken: トークンを文字列で返却
4863
*/
@@ -90,6 +105,19 @@ public function login(Request $request) // Request は引数 $request の型(
90105
}
91106
}
92107

108+
/**
109+
* ユーザー登録処理
110+
*
111+
* @param Request $request リクエストオブジェクト
112+
* - name (string, required, max:255): ユーザー名
113+
* - email (string, required, email, unique): ユーザーのメールアドレス(重複不可)
114+
* - password (string, required, min:8): ユーザーのパスワード(最小8文字)
115+
*
116+
* @return \Illuminate\Http\JsonResponse
117+
* - 201: 成功時 {'authToken': string, 'user': User}
118+
* - 422: バリデーションエラー {'message': string, 'errors': array}
119+
* - 500: サーバーエラー {'message': string}
120+
*/
93121
public function register(Request $request)
94122
{
95123
try {
@@ -160,6 +188,14 @@ public function register(Request $request)
160188
}
161189
}
162190

191+
/**
192+
* ログアウト処理
193+
*
194+
* @param Request $request リクエストオブジェクト(認証済みユーザーのトークンを含む)
195+
*
196+
* @return \Illuminate\Http\JsonResponse
197+
* - 200: 成功時 {'message': string}
198+
*/
163199
public function logout(Request $request)
164200
{
165201
$request->user()->currentAccessToken()->delete();

routes/api.php

Lines changed: 2 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -12,58 +12,10 @@
1212
return response()->json(['message' => 'API is working']);
1313
});
1414

15-
/**
16-
* ログイン
17-
* [AuthController::class, 'login']
18-
* @param Request $request
19-
*
20-
* 引数:
21-
* - Request $request: リクエストオブジェクト
22-
* - email (string, required): ユーザーのメールアドレス
23-
* - password (string, required): ユーザーのパスワード
24-
*
25-
* 処理内容:
26-
* 1. メールアドレスとパスワードでバリデーション
27-
* 2. Googleログイン用アカウントの場合はエラーを返す
28-
* 3. メール・パスワードで認証を試行
29-
* 4. 認証成功時、Sanctumトークンを発行
30-
*
31-
* 返り値:
32-
* - 成功時 (200): {'token': string, 'user': User}
33-
* - バリデーションエラー (422): {'message': string, 'errors': array}
34-
* - 認証失敗 (401): {'message': string}
35-
* - サーバーエラー (500): {'message': string}
36-
*/
15+
// ログイン
3716
Route::post('/login', [AuthController::class, 'login'])->name('login');
3817

39-
/**
40-
* ユーザー登録(認証不要)
41-
*
42-
* ルート名: register
43-
* URI: POST /api/register
44-
* HTTPメソッド: POST
45-
*
46-
* [AuthController::class, 'register']
47-
* - コントローラークラス: App\Http\Controllers\Api\AuthController
48-
* - コントローラーメソッド: register()
49-
*
50-
* 引数:
51-
* - Request $request: リクエストオブジェクト
52-
* - name (string, required, max:255): ユーザー名
53-
* - email (string, required, email, unique): ユーザーのメールアドレス(重複不可)
54-
* - password (string, required, min:8): ユーザーのパスワード(最小8文字)
55-
*
56-
* 処理内容:
57-
* 1. 名前、メールアドレス、パスワードでバリデーション
58-
* 2. ユーザーを作成(パスワードはハッシュ化)
59-
* 3. 'free' ロールを自動付与
60-
* 4. Sanctumトークンを発行してログイン状態にする
61-
*
62-
* 返り値:
63-
* - 成功時 (201): {'token': string, 'user': User}
64-
* - バリデーションエラー (422): {'message': string, 'errors': array}
65-
* - サーバーエラー (500): {'message': string}
66-
*/
18+
// ユーザー登録
6719
Route::post('/register', [AuthController::class, 'register'])->name('register');
6820

6921
// Google OAuth(認証不要)

0 commit comments

Comments
 (0)