Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Import requests, sys, getpass and requests.auth.HTTPBasicAuth to handle endpoint authentication.

    Code Block
    languagepy
    import getpass
    import sys
    import requests
    from requests.auth import HTTPBasicAuth
  2. Get user from input and password via getpass.getpass() so it's not prompted.

    Code Block
    languagepy
    # input argument
    usr = sys.argv[1]
    # Prompt the user for a password without echoing.
    pwd = getpass.getpass()
  3. Set the authentication endpoint

    Code Block
    languagepy
    token_endpoint = 'https://vss-api.eis.utoronto.ca:8001/auth/request-token'
  4. Make a POST request to token_request and create a new HTTPBasicAuth object initializing it with usr and pwd

    Code Block
    languagepy
    r = requests.post(url=token_endpoint, auth=HTTPBasicAuth(usr, pwd))
  5. Get JSON response body

    Code Block
    languagepy
    data = r.json()
  6. Print Error if any or the token if succeeded:

    Code Block
    languagepy
    if r.ok:
        print 'TOKEN={}'.format(data['token'])
    else:
        print 'ERROR: {} {}: {}'.format(r.status_code, data['error'], data['message'])

...

Code Block
languagepy
collapsetrue
#!/usr/bin/env python

# importing modules
import getpass
import sys
import requests
from requests.auth import HTTPBasicAuth

# input argument
usr = sys.argv[1]

# Prompt the user for a password without echoing.
pwd = getpass.getpass()

# authentication endpoint
token_endpoint = 'https://vss-api.eis.utoronto.ca:8001/auth/request-token'

# making post request
r = requests.post(url=token_endpoint, auth=HTTPBasicAuth(usr, pwd))
data = r.json()

# getting token or printing error
if r.ok:
    print 'TOKEN={}'.format(data['token'])
else:
    print 'ERROR: {} {}: {}'.format(r.status_code, data['error'], data['message'])

...