Exemplo n.º 1
0
 def registerUser(self, username, password, email, given_name, family_name,
                  zip_code, timestamp):
     u = Cognito(self.USER_POOL_ID, self.CLIENT_ID)
     u.add_base_attributes(email=email,
                           given_name=given_name,
                           family_name=family_name)
     u.add_custom_attributes(zip_code=zip_code, timestamp=timestamp)
     u.register(username, password)
     return u
Exemplo n.º 2
0
def register(new_user):
    new_user = model_to_dict(
        new_user) if not type(new_user) == dict else new_user
    pool_id = settings.COGNITO_USER_POOL_ID
    app_id = settings.COGNITO_APP_ID
    cog = Cognito(pool_id, app_id)
    cog.add_base_attributes(email=new_user['email'])
    cog.add_custom_attributes(is_staff=str(int(new_user['is_staff'])),
                              is_superuser=str(int(new_user['is_superuser'])))
    cog.register(new_user['email'], new_user['password'])
Exemplo n.º 3
0
def register(request, new_user):
    pool_id = settings.COGNITO_USER_POOL_ID
    app_id = settings.COGNITO_APP_ID
    cog = Cognito(pool_id, app_id)
    cog.add_base_attributes(email=new_user['username'])
    cog.add_custom_attributes(
        is_staff=str(int(new_user['is_staff'])),
        is_superuser=str(int(new_user['is_superuser']))
    )
    cog.register(new_user['username'], new_user['password'])
Exemplo n.º 4
0
def lambda_handler(event, context):
    print("Got event \n" + json.dumps(event, indent=2))

    p_body = parse_qs(event['body'])

    #print str(p_body['user'][0])
    #print str(p_body['tenant_id'][0])
    #print str(p_body['user_id'][0])
    #print p_body['email_addr'][0]

    print event

    cognito = boto3.client('cognito-idp', region_name='us-east-2')
    if p_body['user'] != None:
        user = p_body['user'][0]
        email_add = p_body['email_addr'][0]
        t_id = p_body['tenant_id'][0]
        u_id = p_body['user_id'][0]

        passwd = gen_random_string(8)
        passwd = passwd + "!!" + str(random.randint(0, 100))

        print passwd

        u = Cognito(USER_POOL_ID, CLIENT_ID)
        u.add_base_attributes(email=email_add)
        u.add_custom_attributes(tenantId=t_id, userId=u_id, lib_view='*')
        u.register(user, passwd)

        response = cognito.admin_confirm_sign_up(UserPoolId=USER_POOL_ID,
                                                 Username=user)
        u = Cognito(USER_POOL_ID, CLIENT_ID, username=user)

        u.admin_authenticate(password=passwd)
        print "getting refresh token"

        return {
            'statusCode': 200,
            'headers': {
                'Content-Type': 'application/json'
            },
            'body': json.dumps({'refresh_token': u.refresh_token})
        }
    else:
        return {
            'statusCode': 403,
            'headers': {
                'Content-Type': 'application/json'
            },
            'body': json.dumps({'message': 'invalid user input'})
        }
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from getpass import getpass
from warrant import Cognito

from settings import *

#pool_id   = 'us-east-1_KeZCl0wwt'
#client_id = '2lup6diqlr7usgsn26sqm9vd6c'

name = input('Your Name: ')
email = input('Your Email: ')
secret = input('Code Sprint Secret: ')

u = Cognito(pool_id, client_id)
u.add_base_attributes(email=email, name=name)
u.add_custom_attributes(secret=secret)
u.register(email, getpass(prompt='Password: '))

print("verification email will come from [email protected]")
Exemplo n.º 6
0
def sign():
    signinform = SigninForm(prefix="signin")
    signupform = SignupForm(prefix="signup")

    if request.method == 'POST':
        form = request.form
        pprint.pprint(form)
        if request.form['btn'] == 'Signin':
            # session["active_panel"] = "login-form-link"
            if signinform.validate_on_submit():
                try:
                    auth_cognito = Cognito(
                        cognito_userpool_id,
                        cognito_client_id,
                        user_pool_region=cognito_userpool_region,
                        username=form['signin-username'])
                    auth_cognito.authenticate(password=form['signin-password'])
                    decoded_token = cognitojwt.decode(auth_cognito.id_token,
                                                      cognito_userpool_region,
                                                      cognito_userpool_id,
                                                      cognito_client_id)
                    user = auth_cognito.get_user()
                    credit = user._data['custom:credit']
                # except NotAuthorizedException as e:
                #     flash(e.response['Error']['Message'])
                #     return redirect(request.referrer)
                except Exception as e:
                    if hasattr(e, 'message'):
                        msg = e.message
                    else:
                        msg = str(e)
                    flash(msg, 'error')
                    return redirect(request.referrer)
                else:
                    flash("Signin Successfully!")

                    user = User()
                    user.id = decoded_token["cognito:username"]
                    user.credit = credit
                    session['credit'] = credit
                    session['expires'] = decoded_token["exp"]
                    session['refresh_token'] = auth_cognito.refresh_token
                    session['id_token'] = auth_cognito.id_token
                    session['access_token'] = auth_cognito.access_token
                    login_user(user, remember=True)
                    next_url = request.args.get('next', 'index').strip("/")
                    print("next_url:{}".format(next_url))
                    return redirect(url_for(next_url))

            else:
                flash(signinform.errors)
                return redirect(request.referrer)

        elif request.form['btn'] == 'Signup':
            # session["active_panel"] = "register-form-link"
            if signupform.validate_on_submit():
                try:
                    u = Cognito(cognito_userpool_id, cognito_client_id,
                                cognito_userpool_region)
                    u.add_base_attributes(email=form['signup-email'])
                    u.add_custom_attributes(credit='0')
                    u.register(form['signup-username'],
                               form['signup-password'])
                except Exception as e:
                    if hasattr(e, 'message'):
                        msg = e.message
                    else:
                        msg = str(e)
                    flash(msg, 'error')
                else:
                    pprint.pprint(session)
                    flash("Finish the signup by confirm link in mailbox")
            else:
                flash(signupform.errors, "error")

            return redirect(request.referrer)

    return render_template('sign.html',
                           signinform=signinform,
                           signupform=signupform)
Exemplo n.º 7
0
def sign_up():

    if request and request.method == "POST":
        resp, err = GetUserPasswordFromAuthHeader(request)
        if err:
            res = GetResponseObject(err, 401)
            log.error(res)
            return res

        username, password = resp[0], resp[1]

        if request.data:
            body = json.loads(request.data)
            resp, err = ValidateRegistrationData(body)
            if err:
                res = GetResponseObject(err, 400)
                log.error(res)
                return res

            try:
                body["username"] = username
                # Save user record in Cognito
                user = Cognito(user_pool_id=COGNITO_USER_POOL_ID,
                               client_id=COGNITO_APP_CLIENT_ID,
                               user_pool_region=AWS_REGION)
                user.add_base_attributes(email=username,
                                         given_name=body["firstName"],
                                         family_name=body["lastName"],
                                         phone_number=body["phone"],
                                         address=body["address"])

                user.add_custom_attributes(usertype=body["userType"],
                                           area=body["area"],
                                           city=body["city"])

                resp = user.register(username, password)
                # log.info("Cognito response:" + str(resp))

                user.admin_confirm_sign_up()

                body["uuid"] = resp['UserSub']
                body["email"] = username

                # log.info(json.dumps(body, indent=2))
                # saving user record in db
                # filename, err = upload_image(request)
                # if err:
                #     raise Exception(err)

                # body["image"] = "https://" + settings.CLOUD_FRONT_URL + "/" + filename

                SaveInDB(body)

                data = "User registered successfully !!!"
                res = GetResponseObject(data, 200, True)
                return res

            except ClientError as e:
                if e.response['Error']['Code'] == 'UsernameExistsException':
                    data = f"{username} username already exists !!!"
                    log.error(data)
                    res = GetResponseObject(data)
                    return res

                data = f"Error: {str(e)}"
                log.error(data)
                res = GetResponseObject(data)
                return res

            except Exception as e:
                user = Cognito( \
                    user_pool_id=COGNITO_USER_POOL_ID, \
                    client_id=COGNITO_APP_CLIENT_ID, \
                    user_pool_region=AWS_REGION,
                    username=username)

                user.authenticate(password=password)
                resp = client.delete_user(AccessToken=user.access_token)

                log.info(
                    f"Deleting user due to error while signing up: {resp}")
                data = f"Error while registering user: {str(e)}"
                log.error(data)
                res = GetResponseObject(data)
                return res
        else:
            data = f"Empty request body !!!!"
            res = GetResponseObject(data, 400)
            log.error(err)
            return res
    else:
        data = f"Invalid request method, method {request.method} not supported !!!"
        res = GetResponseObject(data, 405)
        log.error(res)
        return res
Exemplo n.º 8
0
def sign_up():
    if request and request.method == "POST":
        resp, err = GetUserPasswordFromAuthHeader(request)
        if err:
            res = GetResponseObject(err, 401)
            log.error(res)
            return res

        username, password = resp[0], resp[1]

        if request.data:
            body = json.loads(request.data)
            resp, err = ValidateRegistrationData(body)
            if err:
                res = GetResponseObject(err, 400)
                return res

            try:
                body["username"] = username

                # Save user record in Cognito
                user = Cognito(user_pool_id=COGNITO_USER_POOL_ID,
                               client_id=COGNITO_APP_CLIENT_ID, user_pool_region=AWS_REGION)

                user.add_base_attributes(
                    email=username,
                    given_name=body["firstName"],
                    family_name=body["lastName"]
                )

                print(username, password)
                user.add_custom_attributes(
                    yoyoPoints=body["yoyoPoints"],
                    admin=body["admin"]
                )

                resp = user.register(username, password)
                log.info("Cognito response:" + str(resp))

                user.admin_confirm_sign_up()

                body["uuid"] = resp['UserSub']

                # log.info(json.dumps(body, indent=2))
                data = "User registered successfully !!!"
                res = GetResponseObject(data, 200, True)
                return res

            except ClientError as e:
                print(f"Error: {str(e)}")
                if e.response['Error']['Code'] == 'UsernameExistsException':
                    data = f"{username} username already exists !!!"
                    log.error(data)
                    res = GetResponseObject(data)
                    return res

            except Exception as e:
                user = Cognito(
                    user_pool_id=COGNITO_USER_POOL_ID,
                    client_id=COGNITO_APP_CLIENT_ID,
                    user_pool_region=AWS_REGION,
                    username=username)

                user.authenticate(password=password)
                resp = client.delete_user(AccessToken=user.access_token)

                log.info(
                    f"Deleting user due to error while signing up: {resp}")
                data = f"Error while registering user: {str(e)}"
                log.error(data)
                res = GetResponseObject(data)
                return res
        else:
            data = f"Empty request body !!!!"
            res = GetResponseObject(data, 400)
            log.error(err)
            return res
    else:
        data = f"Invalid request method, method {request.method} not supported !!!"
        res = GetResponseObject(data, 405)
        log.error(res)
        return res