validate([ 'name' => 'required|string', 'email'=>'required|string|unique:users', 'password'=>'required|string', 'c_password' => 'required|same:password' ]); $user = new User([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), ]); if($user->save()){ $tokenResult = $user->createToken('Personal Access Token'); $token = $tokenResult->plainTextToken; return response()->json([ 'message' => 'Successfully created user!', 'user' => $user, 'accessToken'=> $token, ],201); } else{ return response()->json(['error'=>'Provide proper details']); } } /** * Login user and create token * * @param [string] email * @param [string] password * @param [boolean] remember_me */ public function login(Request $request) { $request->validate([ 'email' => 'required|string|email', 'password' => 'required|string', 'remember_me' => 'boolean' ]); $credentials = request(['email','password']); if(!Auth::attempt($credentials)) { return response()->json([ 'message' => 'Unauthorized' ],401); } $user = $request->user(); $tokenResult = $user->createToken('Personal Access Token'); $token = $tokenResult->plainTextToken; return response()->json([ 'accessToken' =>$token, 'user' => $user, 'token_type' => 'Bearer', ]); } /** * Get the authenticated User * * @return [json] user object */ public function user(Request $request) { return response()->json($request->user()); } /** * Logout user (Revoke the token) * * @return [string] message */ public function logout(Request $request) { $request->user()->tokens()->delete(); return response()->json([ 'message' => 'Successfully logged out' ]); } }