Flask和Auth0-如何检查用户是否在Jinja中经过身份验证
我在Flask应用程序中使用Auth0进行身份验证,不知道如何检查用户是否在Jinja模板中进行了身份验证 我想知道是否有类似于LoginManager的方法:Flask和Auth0-如何检查用户是否在Jinja中经过身份验证,flask,auth0,Flask,Auth0,我在Flask应用程序中使用Auth0进行身份验证,不知道如何检查用户是否在Jinja模板中进行了身份验证 我想知道是否有类似于LoginManager的方法: {% if current_user.is_anonymous %} #<-- This here <li><a href="{{ url_for('login') }}">Login</a></li> {% else %} <li><a hre
{% if current_user.is_anonymous %} #<-- This here
<li><a href="{{ url_for('login') }}">Login</a></li>
{% else %}
<li><a href="{{ url_for('user', username=current_user.username) }}">Profile</a></li>
<li><a href="{{ url_for('logout') }}">Logout</a></li>
{% endif %}
{% if current_user.is_anonymous %} #<-- This here
<li><a href="{{ url_for('login') }}">Login</a></li>
{% else %}
<li><a href="{{ url_for('user', username=current_user.username) }}">Profile</a></li>
<li><a href="{{ url_for('logout') }}">Logout</a></li>
{% endif %}
{%if current_user.is_anonymous%}您有两个选项:
- 使用模板中自动可用的全局
g
对象和before\u app\u request
钩子,阅读官方Flask
上的更多内容:
然后在模板中:
{% if g.user %}
<li><span>{{ g.user['username'] }}</span>
<li><a href="{{ url_for('auth.logout') }}">Log Out</a>
{% else %}
<li><a href="{{ url_for('auth.register') }}">Register</a>
<li><a href="{{ url_for('auth.login') }}">Log In</a>
{% endif %}
然后获取当前应用程序(在您的案例中,可能需要导入current\u app
对象)
然后您可以使用当前用户
如下所示:
{%如果当前用户为\u匿名%}#
[..]
def _get_user():
if has_request_context() and not hasattr(_request_ctx_stack.top, 'user'):
current_app.login_manager._load_user()
return getattr(_request_ctx_stack.top, 'user', None)
[..]
def _user_context_processor():
return dict(current_user=_get_user())
[..]
app.context_processor(_user_context_processor)
{% if current_user.is_anonymous %} #<-- This here
<li><a href="{{ url_for('login') }}">Login</a></li>
{% else %}
<li><a href="{{ url_for('user', username=current_user.username) }}">Profile</a></li>
<li><a href="{{ url_for('logout') }}">Logout</a></li>
{% endif %}