An easy interface for Microsoft Office 365 Oauth Device Code authentication.
Project description
An easy interface for Microsoft Office 365 Oauth Device Code authentication.
Install
pip install oauth_tools
Example
from oauth_tools import AuthManager import webbrowser import creds import os if not os.path.exists('users.json'): open('users.json', mode='wt').write(json.dumps({})) authManager = AuthManager( # Get your client/tenant ID by following these instructions: # https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-app microsoftClientID=creds.clientID, microsoftTenantID=creds.tenantID, ) authManager.SaveIncompleteOACallback = lambda ID, data: open('incomplete.json', mode='wt').write( json.dumps({ID: data}, indent=2)) authManager.GetIncompleteOACallback = lambda ID: json.loads(open('incomplete.json', mode='rt').read()).get(ID, None) authManager.SaveToDBCallback = lambda ID, data: open('users.json', mode='wt').write( json.dumps({ID: data}, indent=2)) authManager.GetFromDBCallback = lambda ID: json.loads(open('users.json', mode='rt').read()).get(ID, None) MY_ID = 'Grant' user = authManager.GetUserByID(MY_ID) if user is None: # the user has not authenticated before d = authManager.CreateNewUser(MY_ID) webbrowser.open(d['verification_uri']) print('Enter the code', d['user_code']) while True: time.sleep(d['interval']) status = authManager.CheckOAStatus(MY_ID) print('status=', status) if status == 'Success': break user = authManager.GetUserByID(MY_ID) print('user=', user)
The output looks like
>>> Enter the code A4S4QS4EG >>> status= Waiting for user to authenticate >>> status= Success >>> user= <User: ID=Grant, EmailAddress=grant@grant-miller.com, AccessToken=abcdefghijklm...>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
oauth_tools-0.0.2.tar.gz
(5.9 kB
view details)
Built Distribution
File details
Details for the file oauth_tools-0.0.2.tar.gz
.
File metadata
- Download URL: oauth_tools-0.0.2.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33fa7bfd85e8d9b273088ddf07a319232b67fda5d3657500afbcdce347a145c1 |
|
MD5 | c191e155c231a3908fe66c426ea93fda |
|
BLAKE2b-256 | e635e5e7d3c249462d4b0b86f812c62841625bc2159b8496a9488ee713140612 |
File details
Details for the file oauth_tools-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: oauth_tools-0.0.2-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2946839f6d21f816ac70534511f2b5b2626e1a8f6d4c183cb17a62b3adbe08c7 |
|
MD5 | 5beb388ab32af70edd87b50c407e626c |
|
BLAKE2b-256 | 147d88a85d0885403ccdb154379730ef16fb541c24e1512f49051e63e05863ad |