-1

我尝试在 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”:“请求中缺少\“用户名\”。”}

4

1 回答 1

0

ResourceOwnerPasswordCredentialsGrant 仅支持usernamepassword作为请求参数。如果你想支持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

于 2019-07-02T09:14:15.747 回答