Skip to main content

Mandate

Async fork of warrant.

Part of the code was provided by the warrant contributors as part of that software. This code has been duplicated here as allowed by the Apache License 2.0. The warrant code is copyright of the warrant contributors. Any other code is copyright of mandate contributors.

Initialise

    cog = Cognito(
        'pool_id',  # user pool id
        'client_id',  # client id
        user_pool_region='eu-west-2', # optional
        username='your-user@email.com',
        client_secret='secret', # optional
        loop=loop # optional
    )

Register

    cog.add_base_attributes(email='your-user@email.com')
    await cog.register('your-user@email.com', 'password')

admin_create_user is also available:

    await cog.admin_create_user('user@email.com')

Confirm Sign up

    await cog.confirm_sign_up('SIGNUP_CODE', 'your-user@email.com')

admin_confirm_sign_up is also available:

    await cog.admin_confirm_sign_up('user@email.com')

Authenticate

All the below examples can be called with or without admin_ variants.

Per the documentation, when running a backend server, you can use the admin_ methods for authentication and user-related activities. For example:

    await cog.admin_authenticate(password)

Technically, the non-admin workflow can also be used with, however I have not got this to work with app secrets! Help would be appreciated here.

    await cog.authenticate(password)
botocore.errorfactory.NotAuthorizedException: An error occurred (NotAuthorizedException) when calling the RespondToAuthChallenge operation: Unable to verify secret hash for client <client id>

If you create an app without app secrets, you should also be able to use the non-admin versions without issues.

Forgot password

    await cog.initiate_forgot_password()
    # Get the code from the email
    await cog.confirm_forgot_password(code, new_password)

Get user attributes

    await cog.admin_authenticate('password')
    user = await cog.get_user()

Change password

    await cog.admin_authenticate(old_password)
    await cog.change_password(old_password, new_password)

Update profile

    await cog.admin_authenticate(password)
    await cog.admin_update_profile(
        {
            'address': 'foo'
        }
    )

Logout

    await cog.logout()

Development

Install poetry, then to install the dependencies:

poetry install

Unit tests

python -m unittest discover tests

Release files for mandate 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mandate 0.2.5
File Size Uploaded
mandate-0.2.5.tar.gz 16.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mandate 0.2.5
File Interpreter ABI Platform
mandate-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 33.0 kB

Release files / mandate-0.2.5.tar.gz

Download URL mandate-0.2.5.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7ceeff9ad6996e868a86affeeb6176b20a8ac234cfa0b4fc4fcd77fdb57a57b7
BLAKE2b-256 checksum
How to use checksums
0491284b2717aa17e91af2ca03adc5ee6cec4f892b046f65e9bca130fcb9cec2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.16 CPython/3.6.3 Linux/4.4.0-101-generic

Release files / mandate-0.2.5-py3-none-any.whl

Download URL mandate-0.2.5-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4ebb99d8e3d5dfe5f001010e672d8441b1e3b44d0f9c7272c1479c71e0e6b5c
BLAKE2b-256 checksum
How to use checksums
195474341f0627751ec4ffa9cb2269a902e089ba1065ae323bad0c674737bd4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.16 CPython/3.6.3 Linux/4.4.0-101-generic

Release history Release notifications | RSS feed

2.0.1

2 release files

2.0.0

2 release files

1.0.0

2 release files

0.3.0

2 release files

This release

0.2.5 This release

2 release files

0.2.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page