Как определить, аутентифицирован ли текущий пользователь в Firebase с помощью Django
Я использую Django с Pyrebase для доступа к Firebase для аутентификации и входа в систему. Я новичок во всем этом, так что потерпите меня.
Я думаю, что мне удается успешно войти в систему, но в этот момент я не могу понять, как изменить html-файл, чтобы он показывал определенные части, только если пользователь вошел в систему.
Я пробовал {% if user.is_authenticated %}, а также {% if current_user.is_authenticated %}, {% request.user.is_authenticated %} и {% request.current_user.is_authenticated %}, но все они работают так, как будто возвращают false, хотя пользователь аутентифицирован через user = authe.sign_in_with_email_and_password(email, password).
Вот мой views.py:
def login(request):
# Rendering login page
assert isinstance(request, HttpRequest)
return render(
request,
'app/login.html',
{
'title': 'Login',
'message': 'Login to your account',
'year': datetime.now().year
}
)
def postlogin(request):
email=request.POST.get('username')
password=request.POST.get('password')
try:
# if there is no error then log in the user with given email and password
user = authe.sign_in_with_email_and_password(email, password)
except:
message="Invalid credentials."
print("invalid")
return render(request,"app/login.html",{'message':message })
session_id=user['idToken']
request.session['uid']=str(session_id)
return render(request,"app/home.html",{"email":email})
И мой login.html:
{% if request.current_user.is_authenticated %}
<form id="logoutForm" action="/logout/" method="post" class="navbar-right">
{% csrf_token %}
<ul class="nav navbar-nav navbar-right">
<li><span class="navbar-brand">Hello {{ user.username }}!</span></li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
</form>
{% else %}
<ul class="nav navbar-nav navbar-right">
<li><a href="{% url 'login' %}">Log in</a></li>
</ul>
{% endif %}
Как показать верхнюю часть в login.html только если пользователь вошел в систему?