Python Flask-Login: current_user anonymisch haltenPython

Python-Programme
Anonymous
 Python Flask-Login: current_user anonymisch halten

Post by Anonymous »

Ich verwende Flask-Login und dieses Problem tritt auf.

Code: Select all

@api.route('/login', methods=['POST'])
def login():
if current_user.is_authenticated():
return jsonify(flag='success')
username = request.form.get('username')
password = request.form.get('password')
if username and password:
user, authenticated = fsUser.authenticate(username, password)
if user and authenticated:
if login_user(user, remember='y'):
print 'is authenticated: ',current_user.is_authenticated()
return jsonify(flag='success')

current_app.logger.debug('login(api) failed, username: %s.' % username)
return jsonify(flag='fail', msg='Sorry, try again.')
< /code>
Der Code funktioniert gut. Es läuft normalerweise sogar auf das Return Flag = 'Erfolg'. Also kehrt der current_user.is_authenticated () zurück. Das Benutzerobjekt wird von SQLAlchemy aus der SQL -Datenbank erhalten. Wenn es möglicherweise die Problemquelle ist, kann ich das Modell.Py auch nach einer Bitmodifikation bereitstellen.@login_manager.user_loader
def load_user(id):
user = cache.get(id)
if not user:
user = User.get_by_id(id)
cache.set(id, user, 20*60)
return user
< /code>
Ich habe gedruckt, um es zu überprüfen, der Benutzer oben ist korrekt. Es ist nur das aktuelle anonyme Objekt als Standard.class User(db.Model, UserMixin):

__tablename__ = 'my_users'

id = Column('user_id', db.Integer, primary_key=True)
level = Column('user_level', db.Integer, nullable=False)
name = Column('user_name', db.String(255))
email = Column('user_email', db.String(255), nullable=False, unique=True)

# ===============================================================
# Users

# ================================================================
# Password
_password = Column('user_password', db.String, nullable=False)

def _get_password(self):
return self._password

def _set_password(self, password):
self._password = generate_password_hash(password)
# Hide password encryption by exposing password field only.
password = db.synonym('_password',
descriptor=property(_get_password,
_set_password))

def check_password(self, password):
if self.password is None:
return False
return check_password_hash(self.password, password)

def is_authenticated(self):
return True

def is_active(self):
return True

def is_anonymous(self):
return False

def get_id(self):
return unicode(self.id)

def find_user(self):
return unicode('[email protected]')

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post