def get_transfer_client(): nc = NativeClient(client_id='7414f0b4-7d05-4bb6-bb00-076fa3f17cf5') nc.login( requested_scopes=['urn:globus:auth:scope:transfer.api.globus.org:all']) auth = nc.get_authorizers()['transfer.api.globus.org'] return globus_sdk.TransferClient(authorizer=auth)
import globus_sdk from fair_research_login import NativeClient, TokensExpired from fair_research_login.exc import LocalServerError # Register a Native App for a client_id at https://developers.globus.org client = NativeClient(client_id='7414f0b4-7d05-4bb6-bb00-076fa3f17cf5') """ Overwriting old live tokens results in revocation """ # Native Client revokes tokens when they're overwritten. It's generally bad to # depend on an old authorizer after a new login. # The following example will raise an error: client.login(requested_scopes=['openid', 'profile']) auth = client.get_authorizers()['auth.globus.org'] # Requesting a token with new scopes will revoke the old token client.login(requested_scopes=['openid', 'profile', 'email']) # Using the old authorizer will result in an error globus_sdk.AuthClient(authorizer=auth).oauth2_userinfo() """ Handling when the user does not consent """ try: client.login( requested_scopes=['openid', 'profile'], # Using the local server will essentially copy the auth code returned # by Globus to a local webserver, where it can automatically be handed # to the globus_sdk. The most likely error is Globus responds with an # error instead of a code.