all(), [ 'username' => 'required|email', 'password' => 'required' ]); if ($validator->fails()) { return $this->sendError('Validation Error.', $validator->errors()); } if (!Auth::attempt(['email' => $request->username, 'password' => $request->password])) { return $this->sendError('Unauthorised.', ['error' => 'Unauthorised']); } $user = \App\Models\User::where('email', $request->username)->first(); if (empty($user)) { $this->sendError('Error: ', ['error' => 'Email invalid']); } // Creating a token without scopes... $token = $user->createToken($user->id . ' token ' . time(), ['*'])->accessToken; $data['access_token'] = $token; $data['token_type'] = 'Bearer'; $data['expires_in'] = 1296000; $data['refresh_token'] = $token; return $this->sendResponse($data, 'User login successfully.'); // return response()->json($data, 200); } public function register(Request $request) { $validator = \Illuminate\Support\Facades\Validator::make($request->all(), [ 'email' => 'required|email', 'fullname' => 'required' ]); if ($validator->fails()) { return $this->sendError('Validation Error.', $validator->errors()); } $dataInsert = $this->transformRegisterData($request->all()); if (!empty($dataInsert)) { $user = \App\Models\User::insert($dataInsert); return response()->json(['status' => true, 'msg' => $this->getMessageReponse(1)]); } return response()->json(['status' => false, 'msg' => $this->getMessageReponse(2)]); } function transformRegisterData($data) { $finalData = []; if (!empty($data['email'])) { $finalData['email'] = $data['email']; } if (!empty($data['address'])) { $finalData['address'] = $data['address']; } if (!empty($data['birthday'])) { $finalData['birthday'] = $data['birthday']; } if (!empty($data['fullname'])) { $finalData['name'] = $data['fullname']; } if (!empty($data['phone'])) { $finalData['phone'] = $data['phone']; } $finalData['password'] = !empty($data['password']) ? Hash::make($data['password']) : Hash::make('1qaz2wsxA@'); if (!empty($data['gender'])) { $finalData['gender'] = !empty($data['gender']) && $data['gender'] == 'male' ? 1 : 0; } $finalData['user_type'] = !empty($data['role']) ? $data['role'] : $this->_default_usertype; return $finalData; } function getMessageReponse($key) { $msg = [ 1 => "Tạo tài khoản thành công.", 2 => "Tạo tài khoản thất bại.", 3 => "Email đã tồn tại.", 4 => "Email không hợp lệ.", 5 => "Mật khẩu phải có ít nhất 8 ký tự, bao gồm chữ cái và số.", 6 => "Tên đăng nhập phải có ít nhất 6 ký" ]; return $msg[$key] ?? ''; } }