if ($validator->fails()) {
return response()->json(['error' => 'Validation Error', 'validation_errors' => $validator->errors()], 400);
}
$credentials = $request->only('email', 'password');
try {
$user = User::where('email', $request->email)->firstOrFail();
} catch (ModelNotFoundException $e) {
return response()->json(['error' => 'invalid_credentials'], 401);
}
if (!($token = JWTAuth::attempt($credentials, ['name' => $user->name]))) {
return response()->json(['error' => 'invalid_credentials'], 401);
}
return response()->json(compact('token'));
});
// Test route for restricted data (to be removed)
Route::get('restricted', ['middleware' => 'jwt.auth', function () {
$token = JWTAuth::getToken();
$user = JWTAuth::toUser($token);
return response()->json(['data' => ['email' => $user->email, 'registered_at' => $user->created_at->toDateTimeString()]]);
}]);
Route::get('user/{id}', function ($id) {
$user = User::find($id);
return response()->json(['user' => $user]);
});
Route::get('test', function () {
$users = User::paginate(10);
return $users;
});
Route::resource('topic/{id}/posts', 'TopicController@showPosts');
Route::resource('topic', 'TopicController');
Route::resource('post', 'PostController');