我正在創建一個用于身份驗證和數據庫管理的 Laravel API。在我的 AuthController 中,我有一個運行良好的登錄函數和一個不起作用的注冊函數。它不返回新用戶信息和 201 狀態,而是返回 200 并顯示 API 的主頁(由 Laravel 創建的welcome.blade.php)。我在 api.php 中的路線:Route::post('login', 'AuthController@login');Route::post('register', 'AuthController@register');我的驗證控制器:class AuthController extends Controller{ /** * Register user */ public function register(Request $request) { $request->validate([ 'firstname' => 'required|string', 'surname' => 'required|string', 'email' => 'required|email|unique:users', 'password' => 'required|string|confirmed' ]); $user = new User([ 'firstname' => $request->firstname, 'surname' => $request->surname, 'email' => $request->email, 'password' => bcrypt($request->password) ]); $user->save(); $success['token'] = $user->createToken('MyApp')->accessToken; $success['firstname'] = $user->firstname; $success['surname'] = $user->surname; $success['email'] = $user->email; return response()->json(['success' => $success], 201); } /** * Login user and create token * * @param [string] email * @param [string] password * @param [boolean] remember_me * @return [string] access_token * @return [string] token_type * @return [string] expires_at */ public function login(Request $request) { $request->validate([ 'email' => 'required|email|exists:users,email', 'password' => 'required|string', // 'remember_me' => 'boolean' ]); $credentials = request(['email', 'password']); if(!Auth::attempt($credentials)) { return response()->json([ 'message' => 'Unauthorized', 'request'=> $credentials ], 401); }注冊函數有什么問題?
1 回答

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
我想這是為了你的驗證。當驗證失敗時,您必須返回一個 json,否則它將返回最后一個視圖。像這樣進行驗證
$validator = Validator::make($request->all(), [
'firstname' => 'required|string',
'surname' => 'required|string',
'email' => 'required|email|unique:users',
'password' => 'required|string|confirmed'
]);
if ($validator->fails()) {
return response()->json(['message' => $validator->errors()->first(), 'status' => false], 500);
}
并記住使用 Validator 類
use Illuminate\Support\Facades\Validator;
- 1 回答
- 0 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消