Base64 Authentication Python Base64 Authentication Python python python

Base64 Authentication Python


The requests library has Basic Auth support and will encode it for you automatically. You can test it out by running the following in a python repl

from requests.auth import HTTPBasicAuthr = requests.post(api_URL, auth=HTTPBasicAuth('user', 'pass'), data=payload)

You can confirm this encoding by typing the following.

r.request.headers['Authorization']

outputs:

u'Basic c2RhZG1pbmlzdHJhdG9yOiFTRG0wMDY4'


You can encode the data and make the request by doing the following:

import requests, base64usrPass = "userid:password"b64Val = base64.b64encode(usrPass)r=requests.post(api_URL,                 headers={"Authorization": "Basic %s" % b64Val},                data=payload)

I'm not sure if you've to add the "BASIC" word in the Authorization field or not. If you provide the API link, It'd be more clear.


With python3, I have found a solution which is working for me:

import base64userpass = username + ':' + passwordencoded_u = base64.b64encode(userpass.encode()).decode()headers = {"Authorization" : "Basic %s" % encoded_u}