2016-07-04 76 views
1

我發現這個在Stormpath文檔:Stormpath中有一個簡單的'is_authenticated'解決方案嗎?

is_authenticated() (http://flask-stormpath.readthedocs.io/en/latest/api.html) 
All users will always be authenticated, so this will always return True. 

所以is_authenticated似乎並沒有工作,因爲它在燒瓶登錄一樣。我是否需要做一個解決方法,或者是否有類似的功能已經在此API中預先構建?

---編輯---

感謝您的回答,但似乎仍然沒有工作。我所試圖做的是這樣的:

navbar.html

<div class="navbar-right"> 
    {% if user %} 
    <p class="navbar-text">Signed in as <a href="#" class="navbar-link">{{ result }}</a></p> 
    {% else %} 
    <button id="registerbtn" type="button" class="btn btn-default navbar-btn">Sign up</button> 
    {% endif %} 
</div> 

app.py

@app.route('/navbar') 
    def navbar(): 
    if user: 
     return render_template('navbar.html', result=user.given_name) 
    else: 
     return render_template('navbar.html') 

我收到此錯誤信息:

AttributeError: 'AnonymousUserMixin' object has no attribute 'given_name' 

回答

1

我有這個錯誤也是如此。我使用了類似的代碼,上面提供:

if user: 
    return render_template('index.html', given_name=user.given_name) 
return render_template('index.html') 

,並會得到同樣的錯誤在OP:

AttributeError: 'AnonymousUserMixin' object has no attribute 'given_name' 

我的代碼更改爲固定它:

if user.is_anonymous() == False: 
    return render_template('index.html', given_name=user.given_name) 
return render_template('index.html') 

它似乎錯誤是用戶對象的if語句總是被解析爲True,因爲用戶對象在從flask.ext.stormpath導入用戶時以某種方式實例化。

0

我是這個圖書館的作者。確實有一種方法可以檢查用戶是否已通過身份驗證 - 您發現的代碼實際上是內部Flask-Login API的一部分,不適用於公共消費。

你想要做的是這樣的:

from flask_stormpath import user 

def my_view(): 
    if user: 
     # there is a user who is authenticated! 
    else: 
     # nobody has authenticated :(

這會得到你想要的東西=)

+0

仍似乎沒有工作,我更新了我的問題 - 也許你可以再次幫助我。 :) – Yhun

+0

您是否使用Flask-Stormpath以外的其他插件?看看你更新的問題,看起來你已經有其他東西覆蓋了'用戶'對象。 – rdegges

+0

不,在此應用程序中沒有其他插件比Flask-Stormpath。 – Yhun

相關問題