I used flask-jwt in my project and I have declared in controller.py
:
def _validate_user(email, password):
"""
validates user from db
"""
user = Users.get_user(email)
if check_password_hash(user.password_hash, password):
return user
else:
return None
def verify(email, password):
if not (email and password):
return False
valid_user = _validate_user(email, password)
if valid_user:
return valid_user
def identity(payload):
user_id = payload["identity"]
return {"userid", user_id}
and then on the api's view.py
module I have this
from flask_jwt import JWT, jwt_required
from ..controller import (
verify,
identity
)
jwt = JWT(app, verify, identity)
I am using email as username concept have I am not asking user for his username, and instead uses user's email address as username and I have defined the table in models.py
like this:
class Users(UserMixin, db.Model):
""" Stores the user information
"""
__tablename__ = "users"
userid = db.Column(db.Integer, primary_key=True, autoincrement=True)
email = db.Column(db.String(60), index=True, unique=True, nullable=False)
password_hash = db.Column(db.String(255), nullable=False)
registered_on = db.Column(db.DateTime, default=datetime.utcnow())
authenticated = db.Column(db.Boolean, default=False)
admin = db.Column(db.Boolean, nullable=False, default=False)
curl -H "Content-Type: application/json" -u san@test.com:test -i -X GET http://127.0.0.1:5000/auth
but using the above I keep getting error method not allowed, if I try use POST I get error saying failed to decode <p>Failed to decode JSON object: No JSON object could be decoded</p>
.
I am very confused what is going on , similar setup at office was working but I implemented from what I can remember ontop of my head.. seems I am missing the bit.