Notei que no meu settings.py está faltando SESSION_COOKIE_SECURE.
Como ele deveria ser?
Estou com erro, continuo conseguindo acessar a página de membros mesmo sem logar pelo github.
Notei que no meu settings.py está faltando SESSION_COOKIE_SECURE.
Como ele deveria ser?
Estou com erro, continuo conseguindo acessar a página de membros mesmo sem logar pelo github.
Olá Roberth! Como vai?
Durante o desenvolvendo local você não utiliza o HTTPS, então deixo o SESSION_COOKIE_SECURE como False. No entanto, em um ambiente de produção, é preciso definir SESSION_COOKIE_SECURE = True para aumentar a segurança da sua aplicação.
No seu caso, como você mencionou que está conseguindo acessar a página de membros sem estar logado, o problema pode estar relacionado ao uso do decorator login_required na sua view de membros. Certifique-se de que o decorator está corretamente aplicado na função que renderiza a página de membros, como mostrado no exemplo abaixo:
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
@login_required
def members(request):
return render(request, 'members.html')
Certifique-se também de que a configuração do OAuth com o GitHub está correta que o fluxo de autenticação está redirecionando o usuário de volta para a sua aplicação após o login.
Espero ter ajudado e bons estudos!
Boa tarde, Armano e time Alura.
Revi todo o módulo "Django: autenticação com OAuth2.0" e criei um novo projeto do zero. Ao chegar novamente nesta aula, tive o mesmo erro. Pesquisando um pouco, cheguei a uma solução!
Fiz o logout do superuser no /admin e, somente assim, pude chegar na tela abaixo:
Oi, Roberth! Como vai?
Sobre sua dúvida, O acesso à página de membros sem login não está ligado ao SESSION_COOKIE_SECURE. O que aconteceu no seu caso é que você já estava autenticado na aplicação através do /admin, porque o superuser usa o mesmo sistema de sessão do Django. Assim, quando acessava a página de membros, o Django já reconhecia você como usuário autenticado.
Resolva fazendo o seguinte:
/admin./members).login_required irá redirecionar corretamente para o fluxo de login.Além disso, confirme se o decorator está aplicado na view protegida:
from django.contrib.auth.decorators import login_required
from django.shortcuts import render
@login_required
def members(request):
return render(request, "members.html")
Sobre o SESSION_COOKIE_SECURE, utilize assim durante o desenvolvimento local:
SESSION_COOKIE_SECURE = False
E em produção com HTTPS, altere para:
SESSION_COOKIE_SECURE = True
Isso garante que o cookie de sessão só seja enviado em conexões seguras (HTTPS), aumentando a segurança da aplicação.
Fico à disposição!