Django Firebase проверка, если пользователь вошел в систему - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь проверить, вошел ли пользователь в firebase в Django, запросив session_uid в домашнем файле. html. Который, кажется, не работает. Как я могу проверить, вошел ли пользователь firebase в систему?

def login(request):
if request.method == 'POST':
    form = UserLoginForm(request.POST)
    if form.is_valid():
        # form.save()
        email = form.cleaned_data.get('email')
        password = form.cleaned_data.get('password')

        user = auth.sign_in_with_email_and_password(email, password)

        session_id = user['idToken']
        request.session['uid'] = str(session_id)

        messages.success(request, f'Account created for {email}!')
        return redirect(request, 'blog-home')
else:
    form = UserLoginForm()
return render(request, 'users/login.html', {'form': form, 'title': 'Login'})  

home. html

{% extends "home/base.html" %} -->
{% block content %}
{% if request.session.session_id %}
{% for post in posts %}
    <article class="media content-section">
      <div class="media-body">
        <div class="article-metadata">
          <a class="mr-2" href="#">{{ post.author }}</a>
          <small class="text-muted">{{ post.date_posted }}</small>
        </div>
        <h2><a class="article-title" href="#">{{ post.title }}</a></h2>
        <p class="article-content">{{ post.content }}</p>
      </div>
    </article>
{% endfor %}
{% else %}

    <h2>You need to login</h2>

{% endif %}
{% endblock content %}

1 Ответ

1 голос
/ 01 апреля 2020

Вы делаете следующее в представлении

session_id = user['idToken']
request.session['uid'] = str(session_id)

, но получаете доступ как request.session.session_id в шаблоне. Вы должны делать request.session.uid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...