Как сделать хеширование пароля в проекте django, я использую пользовательскую аутентификацию для входа?
Я хочу сделать возможным хэширование паролей для проекта django.
views.py для login.
def asset_login(request):
if request.method == 'POST':
username = request.POST.get('user_id')
password = request.POST.get('password')
try:
user = UserTable.objects.get(username=username, password=password)
if user:
if user.status == 'inactive':
messages.error(request, 'Your account is inactive.')
return redirect('asset_login')
request.session['name'] = user.name
request.session['role'] =user.role
if user.role == 'admin':
return redirect('admin_dashboard')
elif user.role == 'ciso':
return redirect('ciso_dashboard')
elif user.role == 'fnhead':
return redirect('fnhead_dashboard')
elif user.role == 'systemadmin':
return redirect('systemadmin_dashboard')
elif user.role == 'assetowner':
return redirect('assetowner_dashboard')
else:
messages.error(request, 'Unknown user position')
return redirect('asset_login') # Redirect to clear form and message
except UserTable.DoesNotExist:
messages.error(request, 'Invalid username or password')
return redirect('asset_login') # Redirect to clear form and message
return render(request, 'asset.html')
models.py для имени пользователя и пароля
class UserTable(models.Model):
sl_num = models.CharField(max_length=100)
name = models.CharField(max_length=100)
phone_no = models.CharField(max_length=100)
email = models.EmailField(blank=False, null=False)
location = models.CharField(max_length=100)
department = models.CharField(max_length=100)
status = models.CharField(max_length=100)
role=models.CharField(max_length=100)
username=models.CharField(max_length=100)
password=models.CharField(max_length=100)
def __str__(self):
return self.name
Я хочу сделать paasword hasing возможным на проекте django, я использую пользовательскую аутентификацию вместо django build in autentication.