How to implement user authentication in Django
Answered
41
I need to add login, logout, and registration functionality to my Django app. What is the best approach?
F
Asked by
fatima_dev
Silver
•
169 rep
1 Answer
7
Use built-in auth views
# urls.py
from django.contrib.auth import views as auth_views
urlpatterns = [
path('login/', auth_views.LoginView.as_view(), name='login'),
path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]
Custom registration view
from django.contrib.auth.forms import UserCreationForm
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'registration/register.html', {'form': form})
Protect views
from django.contrib.auth.decorators import login_required
@login_required
def dashboard(request):
return render(request, 'dashboard.html')
S
Bronze
•
259 rep
Your Answer
You need to be logged in to answer questions.
Log In to Answer