Flask-login+SQLAlchemy use token for login system couldn't read token -


i want use flask-login(use token)+sqlalchemy build login system. read flask-login offical document , similar article(http://blog.thecircuitnerd.com/flask-login-tokens/) , build login system.

when run run.py, login use user in database, can read user.id via page. when add code program, found token not work! because never see text "<<<<<<<<<<<<<<<----------get token-------------<<<<<<<<<<<<<<<<<<<<<" , "<<<<<<<<<<<<<<<----------load token-------------<<<<<<<<<<<<<<<<<<<<<", add procedure get_token , load_token.

is there wrong in code?

##################################models.py###################### class user(base,usermixin):     __tablename__ = 'users'     id = column(integer, sequence('seq_user_id'), primary_key=true)     name = column(string(50), unique=true, index = true, nullable = false)     email = column(string(120), unique=true, index = true, nullable = false)     password = column(string(128), nullable = false)     active = column(boolean, default=false)     registerdate = column(date, nullable = false)     lastlogin = column(datetime)      def __init__(self, name, email, password, active, registerdate=none, lastlogin=none):         self.name = name         self.email = email         self.password = password         self.active = active         self.registerdate = datetime.datetime.now()         self.lastlogin = lastlogin      def __repr__(self):         return '<user %r>' % (self.name)      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 get_auth_token(self):         print '<<<<<<<<<<<<<<<----------get token-------------<<<<<<<<<<<<<<<<<<<<<'         data = [str(self.id), self.password]         return login_serializer.dumps(data)      @staticmethod     def get_by_id(userid):         result = user.query.filter(user.id==userid).first()         if result:             return result         else:             return none      @staticmethod     def get_by_name(username,password):         result = user.query.filter(user.name==username).filter(user.password==md5(password).hexdigest()).first()         if result:             return result         else:             return none  #####################################forms.py########################### class loginform(form):     username = textfield('username', validators = [length(min=4, max=30), required()])     password = passwordfield('password', validators = [required()])     remember_me = booleanfield('remember_me', default = false)   ####################################frontend.py ############################ @app.route('/') def index(name=none):     #show property of user object test     print '['+str(current_user.is_authenticated())+']['+str(current_user.is_active())+']['+str(current_user.is_anonymous())+']'     if not current_user.is_anonymous():         print '[[[[[[[[[['+str(current_user.id)+']]]]]]]]]]]'     else:         print '[[[[[[[[[[[[anonymous]]]]]]]]]]]]'     return render_template('index.html', name=name)  @app.route('/signout') @login_required def signout():     logout_user()     return redirect(url_for('index'))  @app.route('/signin', methods=['get', 'post']) def signin():     form = loginform()     if form.validate_on_submit():         user = user.get_by_name(form.username.data,form.password.data)         if user:             login_user(user, remember=form.remember_me.data)             return redirect(url_for('index'))         else:             return render_template('signin.html', form = form)     else:         return render_template('signin.html', form = form)  @login_manager.token_loader def load_token(token):     max_age = app.config["remember_cookie_duration"].total_seconds()     print "<<<<<<<<<<<<<<<<<--------------token load-----------<<<<<<<<<<<<<<<<<<<"     data = login_serializer.loads(token, max_age=max_age)     user = user.get_by_id(data[0])     if user , data[1] == user.password:         return user     return none  @login_manager.user_loader def load_user(userid):     print '<<<<<<<<<<<<<<<userload<<<<<<<<<<<<<<<<<<<<<'     return user.get_by_id(userid) 


Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -