示例#1
0
def create_user():
    try:
        data = request.get_json()
        if User.find_by_email(
                email=data.get('email')) is not None or User.find_by_username(
                    username=data.get('username')) is not None:
            return response_with(resp.INVALID_INPUT_422)

        data['password'] = User.generate_hash(data['password'])
        user_schema = UserSchema()
        user = user_schema.load(data)
        token = generate_verification_token(data.get('email'))
        verification_email = url_for('user_routes.verify_email',
                                     token=token,
                                     _external=True)

        html = render_template_string("<p>Welcome! Thanks for\
		signing up. Please follow this link to activate your\
		account:</p> <p><a href='{{ verification_email }}'>{{\
		verification_email }}</a></p> <br> <p>Thanks!</p>",
                                      verification_email=verification_email)
        subject = "Please Verify your email"
        send_email(user.email, subject, html)
        result = user_schema.dump(user.create())

        return response_with(resp.SUCCESS_201)

    except Exception as e:
        print(e)
        return response_with(resp.INVALID_INPUT_422)
示例#2
0
def create_user():
    try:
        data = request.get_json()
        if (User.find_by_email(data["email"]) is not None
                or User.find_by_username(data["username"]) is not None):
            return response_with(resp.INVALID_INPUT_422)
        data["password"] = User.generate_hash(data["password"])
        user_schema = UserSchema()
        user = user_schema.load(data)
        token = generate_verification_token(data["email"])
        verification_email = url_for("user_routes.verify_email",
                                     token=token,
                                     _external=True)
        html = render_template_string(
            "<p>Welcome! Thanks for signing up. Please follow this link to activate your account:</p> <p><a href='{{ verification_email }}'>{{ verification_email }}</a></p> <br> <p>Thanks!</p>",
            verification_email=verification_email,
        )
        subject = "Please verify your email."
        send_email(to=user.email, subject=subject, template=html)
        result = user_schema.dump(user.create())
        return response_with(resp.SUCCESS_201, value={"user": result})
    except IntegrityError:
        return response_with(resp.INVALID_INPUT_422,
                             message="User already registered.")
    except Exception as e:
        print(e)
        return response_with(resp.INVALID_INPUT_422)
示例#3
0
文件: test_users.py 项目: co360/TIL
    def test_confirm_email_for_verified_user(self):
        token = generate_verification_token('*****@*****.**')

        response = self.app.get('/api/users/confirm/' + token)
        data = json.loads(response.data)
        print(data)
        self.assertEqual(422, response.status_code)
 def test_confirm_email(self):
     token = generate_verification_token('*****@*****.**')
     response = self.app.get(
         '/api/users/confirm/' + token
     )
     data = json.loads(response.data)
     self.assertEqual(200, response.status_code)
     self.assertTrue('success' in data['code'])
示例#5
0
def sendEmailToken(email):
    token = generate_verification_token(email)
    verification_email = url_for('user_routes.verify_email',
                                 token=token,
                                 _external=True)
    print(token)
    print(verification_email)
    html = render_template_string(
        "<p>Welcome! Thanks for signing up. Please follow this link to activate youraccount:</p> <p><a href='{{ verification_email }}'>{{verification_email }}</a></p> <br> <p>Thanks!</p>",
        verification_email=verification_email)
    subject = "Please Verify your email"
    send_email(email, subject, html)
示例#6
0
def create_user():
    try:
        data = request.get_json()
        if (User.find_by_email(data['email']) is not None
                or User.find_by_username(data['username']) is not None):
            return response_with(resp.INVALID_INPUT_422)
        user_schema = UserSchema()
        user = user_schema.load(data)
        token = generate_verification_token(data['email'])
        verification_email_url = url_for('user_routes.verify_email',
                                         token=token,
                                         _external=True)
        html = render_template_string(
            "<p>Welcome! Thanks for signing up. Please follow this link to activate your account:</p> <p><a href='{{ verification_email }}'>{{ verification_email }}</a></p> <br> <p>Thanks!</p>",
            verification_email=verification_email_url)
        subject = "Please Verify your email [KeyManager]"
        send_email(user.email, subject, html)
        result = user_schema.dump(user.create())
        return response_with(resp.SUCCESS_201, value={"user": result})
    except Exception as e:
        print(e)
        return response_with(resp.INVALID_INPUT_422)
 def test_confirm_email_with_incorrect_email(self):
     token = generate_verification_token('*****@*****.**')
     response = self.app.get(
         '/api/users/confirm/' + token
     )
     self.assertEqual(404, response.status_code)
 def test_confirm_email_for_verified_user(self):
     token = generate_verification_token('*****@*****.**')
     response = self.app.get(
         '/api/users/confirm/' + token
     )
     self.assertEqual(422, response.status_code)
示例#9
0
 def test_confirm_email_with_incorrect_email(self):
     token = generate_verification_token('*****@*****.**')
     response = self.app.get('/api/users/confirm/' + token)
     data = json.loads(response.data)
     self.assertEqual(404, response.status_code)
示例#10
0
def create_user():
    """
    Create user endpoint
    ---
    parameters:
        - in: body
          name: body
          schema:
            id: UserSignup
            required:
                - username
                - password
                - email
            properties:
                username:
                    type: string
                    description: Unique username of the user
                    default: "Johndoe"
                password:
                    type: string
                    description: Password of the user
                    default: "somethingstrong"
            email:
                type: string
                description: email of the user
                default: "*****@*****.**"
            responses:
                    201:
                        description: User successfully created
                        schema:
                        id: UserSignUpSchema
                        properties:
                            code:
                            type: string
                    422:
                        description: Invalid input arguments
                        schema:
                        id: invalidInput
                        properties:
                            code:
                                type: string
                            message:
                                type: string
    """
    try:
        data = request.get_json()
        if (User.find_by_email(data["email"]) is not None
                or User.find_by_username(data["username"]) is not None):
            return response_with(resp.INVALID_FIELD_NAME_SENT_422)
        data["password"] = User.generate_hash(data["password"])
        user_schema = UserSchema()
        user = user_schema.load(data)
        token = generate_verification_token(data["email"])
        verification_email = url_for("user_routes.verify_email",
                                     token=token,
                                     _external=True)
        html = render_template_string(
            "<p>Welcome! Thanks for signing up. Please follow this link to activate your account:</p> <p><a href='{{ verification_email }}'>{{ verification_email }}</a></p> <br> <p>Thanks!</p>",
            verification_email=verification_email,
        )
        subject = "Please Verify your email"
        # send_email(user.email, subject, html)
        result = user_schema.dump(user.create())
        return response_with(resp.SUCCESS_201)

    except Exception as e:
        print(e)
        return response_with(resp.INVALID_FIELD_NAME_SENT_422)