Merge pull request #18 from jay0lee/patch-1
Support the login_hint parameter
This commit is contained in:
@@ -1508,6 +1508,7 @@ class OAuth2WebServerFlow(Flow):
|
|||||||
auth_uri=GOOGLE_AUTH_URI,
|
auth_uri=GOOGLE_AUTH_URI,
|
||||||
token_uri=GOOGLE_TOKEN_URI,
|
token_uri=GOOGLE_TOKEN_URI,
|
||||||
revoke_uri=GOOGLE_REVOKE_URI,
|
revoke_uri=GOOGLE_REVOKE_URI,
|
||||||
|
login_hint=None,
|
||||||
**kwargs):
|
**kwargs):
|
||||||
"""Constructor for OAuth2WebServerFlow.
|
"""Constructor for OAuth2WebServerFlow.
|
||||||
|
|
||||||
@@ -1530,6 +1531,9 @@ class OAuth2WebServerFlow(Flow):
|
|||||||
defaults to Google's endpoints but any OAuth 2.0 provider can be used.
|
defaults to Google's endpoints but any OAuth 2.0 provider can be used.
|
||||||
revoke_uri: string, URI for revoke endpoint. For convenience
|
revoke_uri: string, URI for revoke endpoint. For convenience
|
||||||
defaults to Google's endpoints but any OAuth 2.0 provider can be used.
|
defaults to Google's endpoints but any OAuth 2.0 provider can be used.
|
||||||
|
login_hint: string, Either an email address or domain. Passing this hint
|
||||||
|
will either pre-fill the email box on the sign-in form or select the
|
||||||
|
proper multi-login session, thereby simplifying the login flow.
|
||||||
**kwargs: dict, The keyword arguments are all optional and required
|
**kwargs: dict, The keyword arguments are all optional and required
|
||||||
parameters for the OAuth calls.
|
parameters for the OAuth calls.
|
||||||
"""
|
"""
|
||||||
@@ -1537,6 +1541,7 @@ class OAuth2WebServerFlow(Flow):
|
|||||||
self.client_secret = client_secret
|
self.client_secret = client_secret
|
||||||
self.scope = util.scopes_to_string(scope)
|
self.scope = util.scopes_to_string(scope)
|
||||||
self.redirect_uri = redirect_uri
|
self.redirect_uri = redirect_uri
|
||||||
|
self.login_hint = login_hint
|
||||||
self.user_agent = user_agent
|
self.user_agent = user_agent
|
||||||
self.auth_uri = auth_uri
|
self.auth_uri = auth_uri
|
||||||
self.token_uri = token_uri
|
self.token_uri = token_uri
|
||||||
@@ -1574,6 +1579,8 @@ class OAuth2WebServerFlow(Flow):
|
|||||||
'redirect_uri': self.redirect_uri,
|
'redirect_uri': self.redirect_uri,
|
||||||
'scope': self.scope,
|
'scope': self.scope,
|
||||||
}
|
}
|
||||||
|
if self.login_hint is not None:
|
||||||
|
query_params['login_hint'] = self.login_hint
|
||||||
query_params.update(self.params)
|
query_params.update(self.params)
|
||||||
return _update_query_params(self.auth_uri, query_params)
|
return _update_query_params(self.auth_uri, query_params)
|
||||||
|
|
||||||
@@ -1656,7 +1663,7 @@ class OAuth2WebServerFlow(Flow):
|
|||||||
|
|
||||||
@util.positional(2)
|
@util.positional(2)
|
||||||
def flow_from_clientsecrets(filename, scope, redirect_uri=None,
|
def flow_from_clientsecrets(filename, scope, redirect_uri=None,
|
||||||
message=None, cache=None):
|
message=None, cache=None, login_hint=None):
|
||||||
"""Create a Flow from a clientsecrets file.
|
"""Create a Flow from a clientsecrets file.
|
||||||
|
|
||||||
Will create the right kind of Flow based on the contents of the clientsecrets
|
Will create the right kind of Flow based on the contents of the clientsecrets
|
||||||
@@ -1674,6 +1681,9 @@ def flow_from_clientsecrets(filename, scope, redirect_uri=None,
|
|||||||
provided then clientsecrets.InvalidClientSecretsError will be raised.
|
provided then clientsecrets.InvalidClientSecretsError will be raised.
|
||||||
cache: An optional cache service client that implements get() and set()
|
cache: An optional cache service client that implements get() and set()
|
||||||
methods. See clientsecrets.loadfile() for details.
|
methods. See clientsecrets.loadfile() for details.
|
||||||
|
login_hint: string, Either an email address or domain. Passing this hint
|
||||||
|
will either pre-fill the email box on the sign-in form or select the
|
||||||
|
proper multi-login session, thereby simplifying the login flow.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
A Flow object.
|
A Flow object.
|
||||||
@@ -1690,6 +1700,7 @@ def flow_from_clientsecrets(filename, scope, redirect_uri=None,
|
|||||||
'redirect_uri': redirect_uri,
|
'redirect_uri': redirect_uri,
|
||||||
'auth_uri': client_info['auth_uri'],
|
'auth_uri': client_info['auth_uri'],
|
||||||
'token_uri': client_info['token_uri'],
|
'token_uri': client_info['token_uri'],
|
||||||
|
'login_hint': login_hint,
|
||||||
}
|
}
|
||||||
revoke_uri = client_info.get('revoke_uri')
|
revoke_uri = client_info.get('revoke_uri')
|
||||||
if revoke_uri is not None:
|
if revoke_uri is not None:
|
||||||
|
|||||||
Reference in New Issue
Block a user