{ "info": { "author": "Sergei Beilin", "author_email": "saabeilin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Utilities" ], "description": "Gotta get your sessions fast!\n=============================\n\nCookie-based sessions are still a common way to track users's sessions. \nFlask and Django have really good support for server-side sessions, but not Sanic yet.\nSo `sanic-secure-session` is an attempt to create a simple yet enough secure session support for Sanic.\n\n * Server-side sessions (currently only Redis backend implemented)\n * Signed session cookie (sure, using `itsdangerous`)\n * Easily extensible backends (only serialization and storage-related logic there)\n\n## Usage example\n\n\n```python\nfrom datetime import timedelta\n\nimport asyncio_redis\nfrom sanic import Sanic\nfrom sanic.response import text\n\nfrom sanic_secure_session import SanicSession\nfrom sanic_secure_session.backends.redis import RedisStorageBackend\n\n\nclass RedisPool:\n \"\"\"\n A simple wrapper class that allows you to share a connection\n pool across your application.\n \"\"\"\n _pool = None\n\n async def get_pool(self):\n if not self._pool:\n self._pool = await asyncio_redis.Pool.create(\n host='localhost', port=6379, poolsize=10\n )\n\n return self._pool\n\n\nredis_pool = RedisPool()\n\nstorage_backend = RedisStorageBackend(redis_connection=redis_pool.get_pool)\n\napp = Sanic()\nSanicSession(app, secret_key='aeNgaif6Ieyishoh', storage_backend=storage_backend,\n ttl=timedelta(minutes=1), http_only=True, secure=True)\n\n\n@app.route(\"/\")\nasync def index(request):\n # interact with the session like a normal dict\n if not request['session'].get('foo'):\n request['session']['foo'] = 0\n\n request['session']['foo'] += 1\n\n return text({\n 'cookies': request.cookies,\n 'session': request['session']\n })\n\n\nif __name__ == \"__main__\":\n app.run(host=\"0.0.0.0\", port=8000, debug=True)\n\n```\n\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/saabeilin/sanic-secure-session", "keywords": "sanic,session", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "sanic-secure-session", "package_url": "https://pypi.org/project/sanic-secure-session/", "platform": "", "project_url": "https://pypi.org/project/sanic-secure-session/", "project_urls": { "Homepage": "https://github.com/saabeilin/sanic-secure-session" }, "release_url": "https://pypi.org/project/sanic-secure-session/0.2.1/", "requires_dist": [ "sanic", "itsdangerous" ], "requires_python": "", "summary": "A server-side secure sessions plugin for Sanic", "version": "0.2.1" }, "last_serial": 3654018, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "1a030223c2fcbf7d7e16fc3dfbef7468", "sha256": "e7f45f9d3c26bb60408fe524ceb06c0691a2930315d3f6ce149c3322cf2d3878" }, "downloads": -1, "filename": "sanic-secure-session-0.2.0.tar.gz", "has_sig": false, "md5_digest": "1a030223c2fcbf7d7e16fc3dfbef7468", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4013, "upload_time": "2018-03-09T07:39:04", "url": "https://files.pythonhosted.org/packages/12/d0/40ccaa77c5b9088ee5e6d3638b47708c824504209fbef175b1fb2320ce51/sanic-secure-session-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "16ef25a10c1d2b008bdf8462c540cf61", "sha256": "73e7ae180b25f833f2d32ad98386e73621b89717bb4fd6d1cd52cae4ab2b0bf3" }, "downloads": -1, "filename": "sanic_secure_session-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "16ef25a10c1d2b008bdf8462c540cf61", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5535, "upload_time": "2018-03-09T10:59:33", "url": "https://files.pythonhosted.org/packages/b0/0f/129ea1c208ace2d1bfac1e1560743354ddc344c25602b09a4ef738d37a26/sanic_secure_session-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32cc3d00b2e494ca6abfafd1769b87bc", "sha256": "be8ffe8ded402dd55d71e1cae9fca9ac168e60087294de4b37e85f065d0d2dc6" }, "downloads": -1, "filename": "sanic-secure-session-0.2.1.tar.gz", "has_sig": false, "md5_digest": "32cc3d00b2e494ca6abfafd1769b87bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3974, "upload_time": "2018-03-09T10:59:35", "url": "https://files.pythonhosted.org/packages/a6/dc/c6a79f86988bc1df3e98e7f51c7e3fa26d2d025d98cd30444f49df00adf5/sanic-secure-session-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "16ef25a10c1d2b008bdf8462c540cf61", "sha256": "73e7ae180b25f833f2d32ad98386e73621b89717bb4fd6d1cd52cae4ab2b0bf3" }, "downloads": -1, "filename": "sanic_secure_session-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "16ef25a10c1d2b008bdf8462c540cf61", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5535, "upload_time": "2018-03-09T10:59:33", "url": "https://files.pythonhosted.org/packages/b0/0f/129ea1c208ace2d1bfac1e1560743354ddc344c25602b09a4ef738d37a26/sanic_secure_session-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32cc3d00b2e494ca6abfafd1769b87bc", "sha256": "be8ffe8ded402dd55d71e1cae9fca9ac168e60087294de4b37e85f065d0d2dc6" }, "downloads": -1, "filename": "sanic-secure-session-0.2.1.tar.gz", "has_sig": false, "md5_digest": "32cc3d00b2e494ca6abfafd1769b87bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3974, "upload_time": "2018-03-09T10:59:35", "url": "https://files.pythonhosted.org/packages/a6/dc/c6a79f86988bc1df3e98e7f51c7e3fa26d2d025d98cd30444f49df00adf5/sanic-secure-session-0.2.1.tar.gz" } ] }