async def sign_up(request): data = request.json try: assert 'email' in data assert 'password' in data assert 'nickname' in data except AssertionError: return json({"error": "Empty field"}) try: email = validate_email(data['email']) data['email'] = email["email"] # replace with normalized form except EmailNotValidError as e: return json({"error": "Email illegal"}) try: await User.get(email=data['email']) return json({"error": "Email already existed"}) except DoesNotExist: pass try: await User.get(nickname=data['nickname']) return json({"error": "Nickname already used"}) except DoesNotExist: pass data['password'] = sha256(data['password']) try: user = await User.create(**data) auth.login_user(request, user) return json({"id": user.id}) except Exception: return json({"error": "Request data too long"})
async def post(self, request): username = request.json.get('username') passwd = request.json.get('password') try: assert username assert passwd except AssertionError: return json( { "message": "Invalid login request, username and/or password missing" }, status=401) try: usr = await objects.get(User, username=username) if usr and usr.verify_passwd(passwd): auth.login_user(request, usr) return json( { 'message': "Login success!", 'user': model_to_dict( usr, backrefs=True, exclude={User.passwd, User.id}) }, status=200) return json({"message": "Wrong credential(s)"}, status=404) except DoesNotExist: return json({"message": "No user found with that username"}, status=404)
def login(self): username = request.json['username'] password = request.json['password'] user = auth.authenticate(username, password) if user: auth.logout_user() auth.login_user(user) return response_manager.LOGIN_SUCCESS_RESPONSE else: return response_manager.LOGIN_FAILED_RESPONSE
async def login(request): data = request.json try: assert 'email' in data assert 'password' in data except AssertionError: return json({"error": "Empty field"}) try: user = await User.get(email=data['email']) except DoesNotExist: return json({"error": "User not existed"}) if sha256(data['password']) != user.password: return json({"error": "Password mismatch"}) auth.login_user(request, user) return json({"id": user.id})
def login_with_payload(payload): login_with_payload_form = LoginWithPayloadForm() if login_with_payload_form.validate_on_submit(): user = login_user(current_app, db, payload) if user: return redirect(url_for(".dashboard")) return render_template("auth/login-with-payload.html", login_with_payload_form=login_with_payload_form)
async def login(request): form = LoginForm(request) errors = {} if request.method == 'POST' and form.validate(): username = form.username.data password = form.password.data try: user = await db_objects.get(Operator, username=username) if await user.check_password(password): login_user = User(id=user.id, name=user.username) auth.login_user(request, login_user) return response.redirect("/") except: errors['validate_errors'] = "Username or password invalid" errors['token_errors'] = '<br>'.join(form.csrf_token.errors) errors['username_errors'] = '<br>'.join(form.username.errors) errors['password_errors'] = '<br>'.join(form.password.errors) template = env.get_template('login.html') content = template.render(links=links, form=form, errors=errors) return response.html(content)
async def register(request): errors = {} form = RegistrationForm(request) if request.method == 'POST' and form.validate(): username = form.username.data password = await crypto.hash_SHA512(form.password.data) # we need to create a new user try: user = await db_objects.create(Operator, username=username, password=password) login_user = User(id=user.id, name=user.username) auth.login_user(request, login_user) return response.redirect("/") except: # failed to insert into database errors['validate_errors'] = "failed to create user" errors['token_errors'] = '<br>'.join(form.csrf_token.errors) errors['username_errors'] = '<br>'.join(form.username.errors) errors['password_errors'] = '<br>'.join(form.password.errors) template = env.get_template('register.html') content = template.render(links=links, form=form, errors=errors) return response.html(content)