mardi 31 mars 2015

How can I handle HTTP login flow/logic

I'm developing an application that requires the user to login. It's a terminal browser to navigate, and use, a popular email client.


I am struggling with the logic flow of actually logging the user in without things getting messy. I will try to explain what I'm trying to achieve in psedueo code, and then demonstrate what I've currently done.



username = 'joe@example.com'
password = 'itsasecret'

# User has logged in before using our application. Instead of
# logging in via HTTP, just inject the cookies into the session.
if userExistsInDatabase:
session.addCookies(db.getCookies(username))

# Check the session is still valid. Just because we load
# the cookie from the database doesn't mean it's valid as
# the account could be blocked, or session could have expired
if session.checkIfSessionIsValid():
print 'Logged In'
else:
# Login failed, now we need to do a HTTP request
# incase the session has died
if session.login(username, password):
# Login success
else:
# Login Failed
else:
# No session exists in DB, try to log in and add user to db
if session.login(username, password):
# Login success
else:
# Login Failed


I hope that code explains it better than I could in words. But, the problem I am having is everything is getting messy and fast, and it's a pain to have to repeat this code whenever I need to use it.


This is something I do regular on a lot of my projects, because most HTTP sites, at least the large ones, have a similar sort of login flow.


Any advice?


Aucun commentaire:

Enregistrer un commentaire