{ "info": { "author": "cxhjet", "author_email": "cxhjet@qq.com", "bugtrack_url": null, "classifiers": [], "description": " \r\r\n mw-aiohttp-security\r\r\n ===================\r\r\n maxwin \u56e2\u961f aiohttp \u6846\u67b6\u4e0b\u7684 \u8ba4\u8bc1\u548c\u786e\u6743\r\r\n \r\r\n \r\r\n \u4ee3\u7801\u6837\u4f8b\r\r\n ------------------\r\r\n \r\r\n > .app/__init__.py \u751f\u6210app\uff0c\u521d\u59cb\u5316 auth\u548cpermission \u7c7b\r\r\n \r\r\n .. code-block:: python\r\r\n \r\r\n from mw_aiohttp_security import Auth,Permission\r\r\n import asyncio\r\r\n import aioredis\r\r\n from aiohttp import web\r\r\n \r\r\n # \u8ba4\u8bc1\u7c7b\r\r\n auth = Auth()\r\r\n # \u6743\u9650\u7c7b\r\r\n p = Permission('maxguideweb')\r\r\n \r\r\n def make_app():\r\r\n async def make_redis_pool():\r\r\n redis_address = ('192.168.101.70', '6380')\r\r\n return await aioredis.create_redis_pool(redis_address, timeout=1)\r\r\n \r\r\n async def dispose_redis_pool(app):\r\r\n redis_pool.close()\r\r\n await redis_pool.wait_closed()\r\r\n \r\r\n loop = asyncio.get_event_loop()\r\r\n app = web.Application()\r\r\n \r\r\n redis_pool = loop.run_until_complete(make_redis_pool())\r\r\n \r\r\n auth.init_app(app,redis_pool)\r\r\n p.init_app(app)\r\r\n app.on_cleanup.append(dispose_redis_pool)\r\r\n # add router\r\r\n from .router import add_router\r\r\n add_router(app)\r\r\n return app\r\r\n \r\r\n > ./app/handler.py \uff0c\u68c0\u67e5\u8ba4\u8bc1\uff1a@auth.valid_login\uff0c\u68c0\u67e5\u6709\u65e0\u6743\u9650\uff1a @p.check('fleet','delete')\r\r\n \r\r\n .. code-block:: python\r\r\n \r\r\n from . import auth,p\r\r\n import time\r\r\n from aiohttp import web\r\r\n from aiohttp_session import get_session\r\r\n \r\r\n # \u68c0\u67e5\u662f\u5426\u6388\u6743\r\r\n @auth.valid_login\r\r\n async def handler(request):\r\r\n user = request['current_user']\r\r\n # \u6ca1\u6709\u6743\u9650raise 403\r\r\n p.check_permission(user.uid, 'fleet', 'auth')\r\r\n text = 'Last visited: {}'.format(time.time())\r\r\n return web.Response(text=text)\r\r\n \r\r\n # \u68c0\u67e5\u662f\u5426\u6709\u5220\u9664 fleet\u7684\u6743\u9650\r\r\n @p.check('fleet','delete')\r\r\n async def say_hello(request):\r\r\n # \u83b7\u53d6session\uff0csession\u4e2d\u6709\u5305\u542buser\u4fe1\u606f\r\r\n session = await get_session(request)\r\r\n # \u83b7\u53d6\u5f53\u524d\u7528\u6237 \u4fe1\u606f\r\r\n user = request['current_user']\r\r\n # \u52a8\u6001\u7684\u68c0\u67e5\u6743\u9650\r\r\n if not p.has_permission(user.uid,'fleet','auth'):\r\r\n return web.Response(text='\u6ca1\u6709\u8bbe\u5b9a\u6388\u6743\u8f66\u961f\u7684\u6743\u9650')\r\r\n return web.Response(text='hello')\r\r\n \r\r\n > ./app/router.py add router\r\r\n \r\r\n .. code-block:: python\r\r\n \r\r\n from .handler import handler,say_hello\r\r\n \r\r\n def add_router(app):\r\r\n app.router.add_get('/', handler)\r\r\n app.router.add_get('/hello',say_hello)\r\r\n ```\r\r\n \r\r\n > .main.py \uff0crun app\r\r\n ```python\r\r\n from aiohttp import web\r\r\n from app import make_app\r\r\n \r\r\n web.run_app(make_app(),port=8899)\r\n \r\n Changes\r\r\n =======\r\r\n \r\r\n 0.1.3(2018-10-31)\r\r\n ------------------\r\r\n \r\r\n - redis_pool \u5728 app.on_startup \u4e2d\u521d\u59cb\u5316\uff0c\u5728init_app\u65f6\uff0c\u76f4\u63a5\u53d6app['redis_pool']\r\r\n \r\r\n 0.1.2(2018-10-31)\r\r\n ------------------\r\r\n \r\r\n - current_user.uid\u6539\u4e3auser_id\uff0ccurrent_user.uname \u6539\u4e3a user_name\r\r\n \r\r\n 0.1.1(2018-10-31)\r\r\n ------------------\r\r\n \r\r\n - fix gbk\r\r\n \r\r\n 0.1.0(2018-10-30)\r\r\n ------------------\r\r\n \r\r\n - \u589e\u52a0readme\r\nKeywords: maxwin commonlib security check_auth check_permission\r\nPlatform: UNKNOWN\r\nClassifier: Development Status :: 3 - Alpha\r\nClassifier: Intended Audience :: Developers\r\nClassifier: Topic :: Software Development :: Build Tools\r\nClassifier: License :: OSI Approved :: MIT License\r\nClassifier: Programming Language :: Python :: 3.5\r\nClassifier: Programming Language :: Python :: 3.6\r\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/maxwin-inc/mw-aiohttp-security/src", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "mw-aiohttp-security", "package_url": "https://pypi.org/project/mw-aiohttp-security/", "platform": "", "project_url": "https://pypi.org/project/mw-aiohttp-security/", "project_urls": { "Homepage": "https://bitbucket.org/maxwin-inc/mw-aiohttp-security/src" }, "release_url": "https://pypi.org/project/mw-aiohttp-security/0.1.3/", "requires_dist": null, "requires_python": "", "summary": "maxwin aiohttp security", "version": "0.1.3" }, "last_serial": 4465041, "releases": { "0.0.7": [ { "comment_text": "", "digests": { "md5": "062346ac1477adc696845bef3d364024", "sha256": "825b0c92ef574bf1c8cc6b7538f9ecf8bfdfdd7e140b9a394aef22b59c7de336" }, "downloads": -1, "filename": "mw-aiohttp-security-0.0.7.tar.gz", "has_sig": false, "md5_digest": "062346ac1477adc696845bef3d364024", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5537, "upload_time": "2018-09-29T08:41:52", "url": "https://files.pythonhosted.org/packages/26/b4/ec475006a4bf645549507c882bfe3d1857135265a5b9148b0176f0411485/mw-aiohttp-security-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "bc5924c0763cf27bba364772e7b25d8c", "sha256": "4957cc74afd206c462c1e365eb7e601f1fc049be950a50e07cfe5a9c526ef6a2" }, "downloads": -1, "filename": "mw-aiohttp-security-0.0.8.tar.gz", "has_sig": false, "md5_digest": "bc5924c0763cf27bba364772e7b25d8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5631, "upload_time": "2018-09-29T10:56:17", "url": "https://files.pythonhosted.org/packages/24/b6/aaff6bdd3e5f611c60330846aee9d26a3d0af52866a9f9b69821e5616d25/mw-aiohttp-security-0.0.8.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "5aae310de2b52bafb3eaafb5ab06dfff", "sha256": "91e3fc264f64799d803850ff59444c04ac4fa32c2d3edd34eaad2f6ec36dad40" }, "downloads": -1, "filename": "mw-aiohttp-security-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5aae310de2b52bafb3eaafb5ab06dfff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5583, "upload_time": "2018-10-30T10:18:37", "url": "https://files.pythonhosted.org/packages/2c/25/fc6b6e87e7a535eafd0130806364f28e2c3ff55da5595704c9d96fdfeb70/mw-aiohttp-security-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "cedf2bf9b42bc289bcd55de44f0ebe3e", "sha256": "b7ed9adb10476c17ebcb9ed9aaed8dba9cba6c722e695e77022bf0b1f2ed0bba" }, "downloads": -1, "filename": "mw-aiohttp-security-0.1.1.tar.gz", "has_sig": false, "md5_digest": "cedf2bf9b42bc289bcd55de44f0ebe3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5670, "upload_time": "2018-10-31T04:34:59", "url": "https://files.pythonhosted.org/packages/e1/45/93c2244f5b35673903c1a5a2e0dddd2c6624a504a561130757ff454ecd29/mw-aiohttp-security-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ead3d29e13f9aebf87900877e168a075", "sha256": "fd7ada44c508b785a094a51f7dd7da97226353daf725771d273f151b07e114a4" }, "downloads": -1, "filename": "mw-aiohttp-security-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ead3d29e13f9aebf87900877e168a075", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5701, "upload_time": "2018-11-06T04:13:27", "url": "https://files.pythonhosted.org/packages/27/a0/b1e48634ff5b32db2d8f5cf50decc539c01ea1cdcb51fcd0e09b1f1dd770/mw-aiohttp-security-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "60bc76525be65b5af08a5d3c1f177a41", "sha256": "23114c9028b094e86910b161f94523c476b33f26d6154286ea455aa754692ab9" }, "downloads": -1, "filename": "mw-aiohttp-security-0.1.3.tar.gz", "has_sig": false, "md5_digest": "60bc76525be65b5af08a5d3c1f177a41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5868, "upload_time": "2018-11-08T10:34:57", "url": "https://files.pythonhosted.org/packages/1b/bf/e2d466957af4c201ef719ac51b97e04b0472dbaceb29fd39fa29b3657a83/mw-aiohttp-security-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "60bc76525be65b5af08a5d3c1f177a41", "sha256": "23114c9028b094e86910b161f94523c476b33f26d6154286ea455aa754692ab9" }, "downloads": -1, "filename": "mw-aiohttp-security-0.1.3.tar.gz", "has_sig": false, "md5_digest": "60bc76525be65b5af08a5d3c1f177a41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5868, "upload_time": "2018-11-08T10:34:57", "url": "https://files.pythonhosted.org/packages/1b/bf/e2d466957af4c201ef719ac51b97e04b0472dbaceb29fd39fa29b3657a83/mw-aiohttp-security-0.1.3.tar.gz" } ] }