Using flask login, trying to login the user after the user registers. user_login() works for my login route, however after registration, it redirects to the login route, not the intended home page. So my question is, can login_user() only work in a 'login' route?
Here is a basic version of what I have now:
class User(flask_login.UserMixin):
def __init__(self, userName, email, firstName):
self.userName = userName
self.id = email
self.email = email
self.firstName = firstName
@login_manager.user_loader
def user_loader(email):
""" code to get userdata from database """
user = User(userName,email,firstName)
return user
@app.route('/register', methods=['GET','POST'])
def register():
if request.method == 'GET':
return render_template('register.html')
elif request.method == 'POST':
""" code for creating user from form data """
#create session for user
user = User(userName,email,firstName)
flask_login.login_user(user)
return redirect(url_for('home'))
@app.route('/login', methods=['GET','POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
""" code for authorizing a user """
user = User(userName,email,firstName)
flask_login.login_user(user)
return flask.redirect(flask.url_for('home'))
else:
return render_template('login.html')
@app.route('/home')
@flask_login.login_required
def home():
return render_template('home.html')
UPDATE: I wasn't loading my user correctly in my user_loader