Asynchronous python Library for justauthenticate.me authentication
Project description
python_jam
An asynchronous python implementation of Just Authenticate Me's REST Api.
Installation
Install normally from pypi.org:
pip install python-jam
It depends on aiohttp, so if aiohttp is installed with extras or speedups, those will be used automatically. It will also use ujson for serialization if installed. ( Defaults to build-in json)
Basic Usage
Create the JustAuthenticateMe object by supplying the AppId from you Just Authenticate Me app, then call the corresponding functions as needed. The primary ones are in the example below.
from python_jam import (
JustAuthenticateMe, JAMUnauthorized, JAMBadRequest,
JAMNotVerified
)
jam = JustAuthenticateMe('APP_ID')
try:
await jam.authenticate('user@example.com')
except JAMBadRequest as e:
print("Something went wrong", e)
try:
headers, claims = await jam.verify_token('user_id_token')
except JAMNotVerified:
print("Unauthorized, invalid token")
try:
new_token = await jam.refresh('user_refresh_token')
except JAMBadRequest as e:
print("Refresh not allowed", e)
except JAMUnauthorized:
print("invalid refresh token")
Available Methods
These are the methods available on a JustAuthenticateMe instance. All Exception inherit
from JustAuthenticateMeError
. This is also the exception raised by an unexpected
error. If the JustAuthenticateMe api returns a message with the error, that is passed
through as exception text.
-
jam.authenticate(email)
- Initialize authentication flow for a user given an email address. ReturnsNone
on success. RaisesJAMBadRequest
when a 400 bad request is received from justauthenticate.me (usually an invalid email) orJAMNotFound
When a 404 not found is received back from justauthenticate.me -
jam.verify_token(id_token)
- Verify a JustAuthenticateMe token against jwks (loaded lazily). Call with parameterid_token
(jwt) from JustAuthenticateMe. Returnsheaders, claims
: headers and claims encoded in the user jwt. (passed through from python-jwt) or raisesJAMNotVerified
if verification fails on a token. -
jam.refresh(refresh_token)
- Refresh id tokens with refresh token.refresh_token
: user's refreshToken from JustAuthenticateMe. Returns: new idToken (JWT) from JustAuthenticateMe. RaisesJAMBadRequest
when app doesn't allow refresh or request is malformed. RaisesJAMInvalid
when the refresh token was invalid. RaisesJAMNotFound
when the appId or refresh token was not found. -
jam.delete_refresh_token(id_token, refresh_token)
- Delete a user's refresh token. (i.e. logout) Called withid_token
: User's id token (JWT) from Just Authenticate Me, andrefresh_token
: The refresh token to delete. ReturnsNone
or raisesJAMUnauthorized
when the id_token is invalid orJAMNotFound
when the refresh_token or app_id cannot be found -
jam.delete_all_refresh_tokens(id_token)
- Delete all of a user's refresh tokens. (i.e. logout) Called withid_token
: User's id token (JWT) from Just Authenticate Me. ReturnsNone
or raisesJAMUnauthorized
when the id_token is invalid.
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
Built Distribution
File details
Details for the file python-jam-1.0.1.tar.gz
.
File metadata
- Download URL: python-jam-1.0.1.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.8.0-28-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af430ac07e2771460583e0a1060d0fbb150288207fdc18b51755a3c1fd07b44f |
|
MD5 | ed8ce69df945de2c3b807c8d0906dc35 |
|
BLAKE2b-256 | 075ef064b2baa730e4f732b7f4a1774da3bbed666f8f0840a4143efd6c7983c1 |
Provenance
File details
Details for the file python_jam-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: python_jam-1.0.1-py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.8.0-28-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bc8d7e2a31f32becb8d04619472a3fbe61f70b0fc7e2fb3aa72b33214100ca5 |
|
MD5 | 085c0f9da6e0e168cf26bebea3f524ec |
|
BLAKE2b-256 | 384a77c86eef193445b4df5520da735e621ef144b6e0dc6d47edfdf9d327c026 |