Даже если пароль неверен, пользователь подтверждается и проходит проверку подлинности в django

Я использую API landsatxplore для загрузки спутниковых снимков и теперь создаю веб-приложение для этого, используя тот же API в Django.

В простом скрипте python.

from landsatxplore.api import API
username = 'username'
password = 'password'
api = API(username, password)

если имя пользователя и пароль верны, то создается экземпляр API/ключ, а если имя пользователя и пароль неверны, то возникает исключение:

landsatxplore.errors.USGSAuthenticationError: AUTH_INVALID: User credential verification failed.

Я пробую ту же логику в Django, но даже если я ввожу неправильное имя пользователя и пароль, он проходит аутентификацию и отправляет меня на следующую страницу homepage.html, которая должна быть доступна только при правильном имени пользователя и пароле.

views.py

from landsatxplore import errors
from django.shortcuts import render,redirect
from django.contrib import messages
from landsatxplore.api import API


# Create your views here.
def index(request):
    username = request.POST.get('username')
    password = request.POST.get('password')
    if username == None or password == None:
            messages.info(request,"please Enter the username and password")
    else:
        try:
        # Initialize a new API instance and get an access key   
            api = API(username, password)
        except errors.USGSUnauthorizedError:
            messages.info(request,"Username and password is wrong")
        else:
            return render(request,"homepage.html")
    return render(request, 'index.html')

def homepage(request):
    return render(request,'homepage.html')

HTML:

       {% for message in messages %}
       <p>{{message}}</p>
       {% endfor %}
        <form method ="POST" action = "homepage">
            {% csrf_token %}
            <p>Username:</p>
            <input type = "text" name ="username">
            <p>Password:</p>
            <input type="text" name = "password">
            <br>
            <input type="submit" value = "Submit">
            
        </form>

Новый Views.py

def login(request):
    if request.method == "POST":
        username = request.POST.get('username')
        password = request.POST.get('password')
       
        if not username or not password:
                return redirect('/')
        else:
            try:
        # Initialize a new API instance and get an access key   
                api = API(str(username), str(password))
            except errors.USGSAuthenticationError:
                messages.info(request,"Username and password is wrong")
                return render(request,"register.html")
            else:
                return render(request,"homepage.html")
    return render(request,"login.html")
Вернуться на верх