No project description provided
Project description
Muffin-Session – Implement an user sessions in Muffin Framework.
Requirements
python >= 3.3
Installation
Muffin-Session should be installed using pip:
pip install muffin-session
Usage
Add muffin_session to PLUGINS in your Application configuration.
Setup options if needed (see bellow).
Options
SESSION_AUTO_LOAD – Load session every request automatically Session will be loaded into request.session.
SESSION_DEFAULT_USER_CHECKER – A function which checks logged user (lambda x: x)
SESSION_LOGIN_URL – Redirect URL (‘/login’), or it may be a function which accepts request object and returns a string.
SESSION_SECRET – A secret code (‘Insecuresecret’)
SESSION_MAX_AGE – # Defines the lifetime of the session-cookie, in seconds
SESSION_DOMAIN – # Defines session-cookie domain
Examples
@app.ps.session.user_loader def load_user(_id): """Define your own user loader. """ @app.register('/session') def get_session(request): """ Load session and return it as JSON. """ session = yield from app.ps.session(request) return dict(session) @app.register('/admin') @app.ps.session.user_pass(lambda u: u.is_admin) def admin(request): """ Check for user is admin. """ @app.register('/login') def login(request): """ Login user. """ # ... yield from app.ps.session.login(current_user.pk) @app.register('/logout') def logout(request): """ Logout user. """ # ... yield from app.ps.session.logout(curuser.pk) @app.register('/somewhere') def somewhere(request): """ Do something and leave a flash message """ # ... yield from app.ps.session.flash('Something done successfully') @app.register('/common') def common_page(request): """ This can be included in any endpoint which outputs regular page. If you use jinja2 or other templating engine, you will need to pass `request` to its context somehow. Also this plugin will register `get_flashed_messages` function in Jinja2 context, but only if Jinja2 plugin was loaded before this one. """ # first we want to ensure that session is loaded, yield from app.ps.session.load() # this method is *not* a coroutine, so it can be used in templates messages = app.ps.session.get_flashed_messages() return ( "<html><body><header>%s</header> Other content </body></html>" % '<br/>'.join(messages) )
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin-session/issues
Contributing
Development of Muffin-Session happens at: https://github.com/klen/muffin-session
Contributors
klen (Kirill Klenov)
License
Licensed under a MIT license.
If you wish to express your appreciation for the project, you are welcome to send a postcard to:
Kirill Klenov pos. Severny 8-3 MO, Istra, 143500 Russia
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
Hashes for muffin_session-0.6.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a64d41827470abab2b457ba81cf889d6fc1c89aed643675432bcf9047439795 |
|
MD5 | d07125255c2ac27599edf18b932a731b |
|
BLAKE2b-256 | 08ae625f89b69cfa8953edc9c6162b0e6cd2aedf9d75be1bd8333ed801eeb200 |