コード例 #1
0
ファイル: test_user.py プロジェクト: ctldev/ctlweb
 def test_get(self):
     self.user.create_table()
     self.user.save()
     results = User.get()
     self.assertEqual(self.user, results[0], "Unable to get all data")
     import datetime
     d = datetime.datetime.now() - datetime.timedelta(minutes=2)
     results = User.get(d)
     self.assertEqual(self.user, results[0], "Unable to get new data")
コード例 #2
0
ファイル: test_user.py プロジェクト: ctldev/ctlweb
 def test_get(self):
     self.user.create_table()
     self.user.save()
     results = User.get()
     self.assertEqual(self.user, results[0], "Unable to get all data")
     import datetime
     d = datetime.datetime.now() - datetime.timedelta(minutes=2)
     results = User.get(d)
     self.assertEqual(self.user, results[0], "Unable to get new data")
コード例 #3
0
def callback():
    # Get authorization code Google sent back to you
    code = request.args.get("code")

    # Find out what URL to hit to get tokens that allow you to ask for things on behalf of a user
    google_provider_cfg = get_google_provider_cfg()
    token_endpoint = google_provider_cfg["token_endpoint"]

    # Prepare and send a request to get tokens
    token_url, headers, body = client.prepare_token_request(
        token_endpoint,
        authorization_response=request.url,
        redirect_url=request.base_url,
        code=code)
    token_response = requests.post(
        token_url,
        headers=headers,
        data=body,
        auth=(GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET),
    )

    # Parse the tokens
    client.parse_request_body_response(json.dumps(token_response.json()))

    # Now that you have tokens let's find and hit the URL
    # from Google that gives you the user's profile information,
    # including their Google profile image and email
    userinfo_endpoint = google_provider_cfg["userinfo_endpoint"]
    uri, headers, body = client.add_token(userinfo_endpoint)
    userinfo_response = requests.get(uri, headers=headers, data=body)

    # You want to make sure their email is verified.
    # The user authenticated with Google, authorized your
    # app, and now you've verified their email through Google!
    if userinfo_response.json().get("email_verified"):
        unique_id = userinfo_response.json()["sub"]
        users_email = userinfo_response.json()["email"]
        picture = userinfo_response.json()["picture"]
        users_name = userinfo_response.json()["given_name"]
    else:
        return "User email not available or not verified by Google.", 400

    # Create a user in your db with the information provided by Google
    user = User(id_=unique_id,
                name=users_name,
                email=users_email,
                profile_pic=picture)

    # Doesn't exist? Add it to the database.
    if not User.get(unique_id):
        User.create(unique_id, users_name, users_email, picture)
        new_user = True
        return new_user

    # Begin user session by logging the user in
    login_user(user, remember=True, duration=timedelta(days=30))

    # Send user back to homepage
    return redirect(url_for("home"))
コード例 #4
0
def change_password():
    error_message = None

    if request.method == 'POST':
        user = User.get(g.user.id)
        original_password = request.form.get('original_password')
        new_password = request.form.get('new_password')

        if new_password != request.form.get('new_password_check'):
            error_message = 'New passwords do not match.'
        elif not check_password_hash(user.password_hash, original_password):
            error_message = 'Your password is not correct.'
        elif len(new_password) < 8:
            error_message = 'New password must be at least 8 characters.'
        else:
            user.password_hash = generate_password_hash(new_password)
            save_changes()

    return render_template('/pages/admin/change_password.html', error_message=error_message)
コード例 #5
0
ファイル: auth.py プロジェクト: peiro98/flask-jwt
def login():
    if not request.is_json:
        return jsonify({"msg": "Missing JSON in request"}), 400

    username = request.json.get('username', None)
    password = request.json.get('password', None)
    if not username:
        return jsonify({"msg": "Missing username parameter"}), 400
    if not password:
        return jsonify({"msg": "Missing password parameter"}), 400

    exists = False
    with orm.db_session():
        u = User.get(username=username)
        if u is not None and check_password(password, u.password):
            exists = True

    if not exists:
        return jsonify({"msg": "The user does not exist"}), 400

    return jsonify({
        'access_token': create_access_token(identity=username),
        'refresh_token': create_refresh_token(identity=username)
    }), 200
コード例 #6
0
def load_user(user_id):
    from database.user import User
    return User.get(user_id)
コード例 #7
0
def load_user(user_id):
    print(User.get(user_id))
    return User.get(user_id)
コード例 #8
0
def load_user(user_id):
    from database.user import User
    return User.get(user_id)