Skip to main content

Authorize user via jwt

Project description

jwt_user

A Python implementation of acquiring, authorizing user from jwt token. designed to work for any request entity from flask,django,tornado frameworks.

Installing

Install with pip:

$ pip install jwt_user

Usage

>>> import jwt_user
>>> payload = {'username': 'test'}
>>> token = jwt_user.generate_token(payload)
>>> request = jwt_user.generate_request(token)
>>> user = jwt_user.get_jwt_user(request)
>>> user
{}
>>> user.username
'test'
>>> #Second usage
... 
>>> import tornado
>>> BaseRequestHandler = tornado.web.RequestHandler
>>> class MainHandler(BaseRequestHandler):
...     @jwt_user.authorized_user
...     def get(self):
...         self.write('Hello, Authorized user')
...
>>> class MainUserHandler(BaseRequestHandler):
...     @jwt_user.authorized_user
...     def get(self):
...         user = jwt_user.get_jwt_user(self.request)
...         self.write('Hello, {}'.format(user.username))
>>>
>>> os.environ['JWT_EXPIRATION_DELTA'] = '3400'
>>> os.environ['JWT_PRIVATE_KEY'] = 'some random hexa private text'
>>> os.environ['JWT_SECRET_KEY'] = 'some random hexa secret text'
>>> os.environ['JWT_AUTH_HEADER'] = 'Authorization'
>>> os.environ['JWT_AUTH_HEADER_PREFIX'] = 'Bearer'
>>> def make_app():
...     user_valid_fields = {'username', 'user_id', 'token'}
...     jwt_user.set_user_valid_fields(user_valid_fields)
...     application = tornado.web.Application([
...     (r'/', MainHandler),
...     (r'/user_page', MainUserHandler)])
...     return application
>>>

],

Documentation

View the full docs online at https://jwt_user.readthedocs.io/en/latest/

Tests

You can run tests from the project root after cloning with:

$ make smoke

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jwt_user-0.0.9.tar.gz (4.1 kB view hashes)

Uploaded source

Built Distribution

jwt_user-0.0.9-py3-none-any.whl (6.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page