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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!