我正在使用Flask-Login並試圖瞭解它是如何工作的。如果我理解文檔的權利,我應該創建一個用戶類,該類包含四種方法,is_authenticated,is_active,is_anonymous和get_id。我真的不明白我應該怎麼做。有一個函數,login_user(用戶),我明白了我的實例還沒有通過身份驗證的用戶並進行身份驗證,但是當我的用戶類沒有任何設置方法時,它是如何工作的?如何使用Flask-Login?
下面是一些代碼:
class User:
isAuth = False
isActive = False
isAnon = True
id = unicode(0)
def __init__(self, isAuth, isActive, isAnon, id):
self.isAuth = isAuth
self.isActive = isActive
self.isAnon = isAnon
self.id = id
def is_authenticated(self):
return isAuth
def is_active(self):
return isActive
def is_anonymous(self):
return isAnon
def get_id(self):
return id
這裏是我對我應該如何驗證用戶身份的猜測,通過使用authomatic和燒瓶登錄:
@app.route('/login/<provider_name>/', methods=['GET', 'POST'])
def login(provider_name):
response = make_response()
result = authomatic.login(WerkzeugAdapter(request, response), provider_name)
user = User()
if result:
if result.user:
result.user.update()
login_user(user)
return render_template('login.html', result=result)
return response
我缺少什麼?
EDIT中,這裏是user_loader:
@lm.user_loader
def load_user(userid):
return User.get(userid)
而且我也有這個頂部:
lm = LoginManager()
lm.init_app(app)
嘗試增加'@ login_required'裝飾你上面的方法來處理響應(如'指數()'或類似的)。 – 2014-09-03 20:46:15
這已完成,但在上面的代碼示例中不可見。 – theva 2014-09-03 20:47:21
看看是否有幫助:http://stackoverflow.com/questions/12075535/flask-login-cant-understand-how-it-works?rq=1 – 2014-09-03 20:49:01