https://github.com/magiclabs/magic-admin-python
Magic admin Python SDK makes it easy to leverage Decentralized ID tokens to protect routes and restricted resources for your application.
https://github.com/magiclabs/magic-admin-python
authentication identity passwordless python
Last synced: 7 months ago
JSON representation
Magic admin Python SDK makes it easy to leverage Decentralized ID tokens to protect routes and restricted resources for your application.
- Host: GitHub
- URL: https://github.com/magiclabs/magic-admin-python
- Owner: magiclabs
- License: mit
- Created: 2020-03-04T18:40:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-12-06T18:55:25.000Z (about 1 year ago)
- Last Synced: 2024-12-06T20:59:23.343Z (about 1 year ago)
- Topics: authentication, identity, passwordless, python
- Language: Python
- Homepage: https://magic.link/docs/auth/api-reference/server-side-sdks/python
- Size: 101 KB
- Stars: 33
- Watchers: 16
- Forks: 15
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Magic Admin Python SDK
The Magic Admin Python SDK provides convenient ways for developers to interact with Magic API endpoints and an array of utilities to handle [DID Token](https://magic.link/docs/auth/introduction/decentralized-id).
## Table of Contents
* [Documentation](#documentation)
* [Quick Start](#quick-start)
* [Development](#development)
* [Changelog](#changelog)
* [License](#license)
## Documentation
See the [Magic doc](https://magic.link/docs/auth/api-reference/server-side-sdks/python)!
## Installation
You can directly install the SDK with:
pip:
```
pip install magic-admin
```
conda:
```
conda install magic-admin
```
### Prerequisites
- Python 3.6
**Note**: This package has only been tested with `Python 3.6`. `Python 3.7` and `Python 3.8` have not been tested yet. We will get to it very soon. Support for `Python 2.7+` will not be actively worked on. If you are interested using this package with earlier versions of Python, please create a ticket and let us know :)
## Quick Start
Before you start, you will need an API secret key. You can get one from the [Magic Dashboard](https://dashboard.magic.link/). Once you have the API secret key, you can instantiate a Magic object.
```
from magic_admin import Magic
magic = Magic(api_secret_key='')
magic.Token.validate('DID_TOKEN')
# Read the docs to learn more! 🚀
```
Optionally if you would like, you can load the API secret key from the environment variable, `MAGIC_API_SECRET_KEY`.
```
# Set the env variable `MAGIC_API_SECRET_KEY`.
magic = Magic()
```
**Note**: The argument passed to the `Magic(...)` object takes precedence over the environment variable.
### Configure Network Strategy
The `Magic` object also takes in `retries`, `timeout` and `backoff_factor` as optional arguments at the object instantiation time so you can override those values for your application setup.
```
magic = Magic(retries=5, timeout=10, backoff_factor=0.03)
```
## Development
We would love to have you contributing to this SDK. To get started, you can clone this repository and create a virtualenv.
```
make development
```
This will create a virtualenv for all the local development dependencies that the SDK will needs.
Once it is done, you can `source` the virtualenv. It makes your local development easier!
```
source virtualenv_run/bin/activate
```
To make sure your new code works with the existing SDK, run the test against the current supported Python versions.
```
make test
```
To clean up existing virtualenv, tox log and pytest cache, do a
```
make clean
```
This repository is installed with [pre-commit](https://pre-commit.com/). All of the pre-commit hooks are run automatically with every new commit. This is to keep the codebase styling and format consistent.
You can also run the pre-commit manually. You can find all the pre-commit hooks [here](.pre-commit-config.yaml).
```
pre-commit run
```
Please also see our [CONTRIBUTING](CONTRIBUTING.md) guide for other information.
## Changelog
See [Changelog](CHANGELOG.md)
## License
See [License](LICENSE.txt)