2016-07-04 1 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?

--- EDIT ---

Спасибо за ответ, но это еще не похоже на работу. То, что я пытаюсь сделать это:

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

Я автор этой библиотеки. Существует действительно способ проверить, аутентифицирован ли пользователь или нет. Код, который вы нашли, фактически является частью внутреннего API-интерфейсов Flask-Login и не предназначен для общественного потребления.

Что вы хотите сделать это:

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? Глядя на ваш обновленный вопрос, похоже, у вас есть что-то еще, что перезаписывает этот объект 'user'. – rdegges

+0

Нет, нет другого плагина, кроме Flask-Stormpath в этом приложении. – Yhun

Смежные вопросы