all(), [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users|max:255', 'password' => 'required|min:10', ]); // Return errors if validation error occur. if ($validator->fails()) { $errors = $validator->errors(); return response()->json([ 'error' => $errors ], 400); } // Check if validation pass then create user and auth token. Return the auth token if ($validator->passes()) { $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password) ]); $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', ], 201 ); } } public function login(Request $request) { if (!Auth::attempt($request->only('email', 'password'))) { return response()->json([ 'message' => 'Invalid login details' ], 401); } $user = User::where('email', $request['email'])->firstOrFail(); $token = $user->createToken('auth_token') ->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', 'message' => 'Login successful, please remember to logout!' ]); } public function me(Request $request) { return $request->user(); } public function logout(Request $request) { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'Logged out' ], 200 ); } }