1

I've written a function to get user details of logged in user using uid(uuid) but how to add @token_required functionality for this after user logged in?

As I've seen in most of the resources people have done it using normal sqlalchmey but I've implemented this using SqlAlchemy core.

I'm new to this and not getting ahead because I'm not able to resolve this issue. Please help!!

Login code

@app.route('/login', methods=['POST'])
def login():

    auth = user_schema.load(request.get_json())

    user_name = auth['user_name']
    password = auth['password']
    conn = engine.connect()
    results = conn.execute(text("SELECT id, user_name, password, email_address, dob, uid FROM user WHERE (user_name = :user_name)"), {
                           "user_name": user_name})
    # print(results)
    result_dict = [dict(u) for u in results.fetchall()]
    print(result_dict[0])
    data = result_dict[0]
    print("data :", data)
    # return result_dict[0]

    if data['user_name'] != auth['user_name']:
        return make_response('Could not verify user, Please signup!', 401, {'WWW-Authenticate': 'Basic-realm= "No user found!"'})

    if check_password_hash(data['password'], auth['password']):
        token = jwt.encode({'uid': data['uid']},
                           app.config['SECRET_KEY'], 'HS256')
        return make_response(jsonify({'token': token}), 201)

    return make_response('Could not verify password!', 403, {'WWW-Authenticate': 'Basic-realm= "Wrong Password!"'})

user_detail route


@app.route('/users/<uid>', methods=['GET'])
def profile_view(uid):
    print("user_details")
    conn = engine.connect()
    str_sql = text("""SELECT * FROM user WHERE uid = uid""", {"uid": uid})
    results = conn.execute(str_sql).fetchall()
    print(results)
    return users_scehma.dump(results)
Naveen Pandia
  • 107
  • 13

0 Answers0