Email вместо имени пользователя в пароле - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь использовать электронную почту вместо имени пользователя в ResourceOwnerPasswordCredentialsGrant Я хочу, чтобы запрос был таким

curl -u client_id:client_secret -XPOST http://127.0.0.1:5000/oauth/token -F grant_type=password -F email=example@example.com -F password=password -F scope=read

, но я получаю сообщение об ошибке {"error": "invalid_request", "error_description": "Missing \" username \ "in request."}

1 Ответ

0 голосов
/ 02 июля 2019

ResourceOwnerPasswordCredentialsGrant поддерживает только username и password в качестве запрашивающих параметров. Если вы хотите поддерживать email, вам лучше настроить ResourceOwnerPasswordCredentialsGrant как:

def authenticate_user(self, username, password):
    if '@' in username:
        user = get_user_by_email(username)
    else:
        user = get_user_by_username(username)
    if user.check_password(password):
        return user

И вы все равно должны запросить с параметром username.

...