{ "info": { "author": "David Ziegler", "author_email": "david.ziegler@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP" ], "description": "django-urlcrypt\n=================\n\ndjango-urlcrypt encrypts information in urls, such as login credentials. \n\nFor example, assume I have url patterns that looks like this::\n\n urlpatterns = patterns('',\n url(r'^inbox/$', 'message_inbox', name='message_inbox'), \n (r'^r/', include('urlcrypt.urls')),\n )\n\nI can use django-urlcrypt to generate a url for a user that looks like::\n\n http://www.mydomain.com/r/TkNJBkNFAghDWkdFGPUAQEfcDUJfEBIREgEUFl1BQ18IQkdDUUcPSh4ADAYAWhYKHh8KHBsHEw\n\nand will automatically log that person in and redirects them to ``/inbox/``.\n\nInstallation\n************\n\n1. ``easy_install django-urlcrypt`` or ``pip install django-urlcrypt``\n \n2. Add ``urlcrypt`` to your ``INSTALLED_APPS``\n\n3. In settings.py add ``'urlcrypt.auth_backends.UrlCryptBackend'`` to ``AUTHENTICATION_BACKENDS``\n\n4. In urls.py add::\n\n (r'^r/', include('urlcrypt.urls')),\n \n5. **(recommended)** If you wish to use RSA encryption on your tokens, generate a private key with ``ssh-keygen -t rsa -f `` if you don't already have one, and then set the path to the private key as URLCRYPT_PRIVATE_KEY_PATH. RSA encryption makes the token much longer but is more secure. The ``pycrypto`` library is required.\n\nUsage\n******\nIn a view::\n\n from django.core.urlresolvers import reverse\n from urlcrypt import lib as urlcrypt\n \n token = urlcrypt.generate_login_token(user, reverse('message_inbox'))\n encoded_url = reverse('urlcrypt_redirect', args=(token,))\n # yours will look slightly different because you have a different SECRET_KEY, but approximately \n # encoded_url == /r/TkNJBkNFAghDWkdFGPUAQEfcDUJfEBIREgEUFl1BQ18IQkdDUUcPSh4ADAYAWhYKHh8KHBsHEw\n \nIn a template::\n\n {% load urlcrypt_tags %}\n click me to log in as {{user.username}} and go to {% url message_inbox %}\n\nAdvanced lib usage::\n\n from urlcrypt import lib as urlcrypt\n \n message = {\n 'url': u'/users/following/', \n 'user_id': '12345'\n }\n \n token = urlcrypt.encode_token((message['user_id'], message['url']))\n decoded_message = urlcrypt.decode_token(token, ('user_id', 'url', 'timestamp'))\n \n >>> print token\n TkNJBkNFAghDWkdFGPUAQEfcDUJfEBIREgEUFl1BQ18IQkdDUUcPSh4ADAYAWhYKHh8KHBsHEw\n \n >>> print decoded_message\n {'url': '/users/following/', 'user_id': '12345'}\n \nSettings\n********\n\n - ``URLCRYPT_LOGIN_URL``\n \n - default: ``LOGIN_URL``\n - If urlcrypt authentication fails, redirects to ``URLCRYPT_LOGIN_URL``.\n\n - ``URLCRYPT_RATE_LIMIT``\n \n - default: ``60``\n - The number of urlcrypt requests a unique visitor is allowed to make per minute.\n\n - ``URLCRYPT_PRIVATE_KEY_PATH``\n \n - default: ``None``\n - The path to the RSA private key file in PEM format. If ``None``, RSA encryption will not be used.\n\n - ``RUNNING_TESTS``\n \n - default: ``False``\n - Set ``RUNNING_TESTS`` to True when running the urlcrypt tests.\n\nCredits\n********\n`David Ziegler`_\n\n`Christopher Hesse`_\n\n.. _`David Ziegler`: http://github.com/dziegler\n.. _`Christopher Hesse`: http://github.com/cshesse", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/dziegler/django-urlcrypt", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-urlcrypt", "package_url": "https://pypi.org/project/django-urlcrypt/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-urlcrypt/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/dziegler/django-urlcrypt" }, "release_url": "https://pypi.org/project/django-urlcrypt/0.1.6/", "requires_dist": null, "requires_python": null, "summary": "Encrypts information in urls, such as login credentials. Useful if you want to send a user a link that logs the user in without leaking their login credentials.", "version": "0.1.6" }, "last_serial": 790948, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "69d2136b96074312a329207c955bd536", "sha256": "ebf678afa261d91a7ff2045dc600ded798a76171ee25f6ebd894822f4223ecea" }, "downloads": -1, "filename": "django-urlcrypt-0.1.0.tar.gz", "has_sig": false, "md5_digest": "69d2136b96074312a329207c955bd536", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7374, "upload_time": "2010-10-28T22:20:18", "url": "https://files.pythonhosted.org/packages/21/c4/a57d6f9b4d355d78bc6575d87020d98b28732a17177c2b85f2a996caf491/django-urlcrypt-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "05795c39657da0fe0eb45a2e3dd3abc9", "sha256": "58fd1b6a707f0c184215835f65846871a7e693a01b089087848233d8952c4412" }, "downloads": -1, "filename": "django-urlcrypt-0.1.1.tar.gz", "has_sig": false, "md5_digest": "05795c39657da0fe0eb45a2e3dd3abc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7309, "upload_time": "2010-10-28T22:29:41", "url": "https://files.pythonhosted.org/packages/48/80/da7ebdce33f91c07cd4413ad5db23ba1e4b85c26019648b7a9a5f1b2a6a5/django-urlcrypt-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f38918578d5740e670d1b8d95097adff", "sha256": "9aa47c9445ba59aa02c01c2e43321e0dae33ae6406be12d36f8ae8f172f24b36" }, "downloads": -1, "filename": "django-urlcrypt-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f38918578d5740e670d1b8d95097adff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8102, "upload_time": "2010-10-30T02:37:14", "url": "https://files.pythonhosted.org/packages/d3/76/708c4c6d7bdcef0f180658fed63bbca97409ee22240cb9a17aeff71fdbaf/django-urlcrypt-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "73d0bf52b17260a48750352c4b5deeb3", "sha256": "0213a9b05cff96b67fe09e33ba031f7119deca38cdd6d99a62e3eb5f1493fcfb" }, "downloads": -1, "filename": "django-urlcrypt-0.1.3.tar.gz", "has_sig": false, "md5_digest": "73d0bf52b17260a48750352c4b5deeb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11143, "upload_time": "2010-11-03T11:29:26", "url": "https://files.pythonhosted.org/packages/cf/d5/5dbd4b6f217bfec3e9f6c8da6365117643eea9ecfd27e81db07b6952fc09/django-urlcrypt-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "6c50f299bfa441cb2c34bd3a8697e640", "sha256": "275da49d08d3b8e08a1bff264670c2b8158b6b329bca01bbe889a2c6baa53049" }, "downloads": -1, "filename": "django-urlcrypt-0.1.4.tar.gz", "has_sig": false, "md5_digest": "6c50f299bfa441cb2c34bd3a8697e640", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11295, "upload_time": "2010-11-06T08:09:23", "url": "https://files.pythonhosted.org/packages/f6/4e/8143205c7cc26109a65bd6ded7410c7408a3d7fa45533d9d030b9b30ece0/django-urlcrypt-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "db983a3e48c58a38c19b0a577c716c6f", "sha256": "4f16f6c01d528bf63d18f59cdfb659a46759077784fe6f27de692312595660bb" }, "downloads": -1, "filename": "django-urlcrypt-0.1.5.tar.gz", "has_sig": false, "md5_digest": "db983a3e48c58a38c19b0a577c716c6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11686, "upload_time": "2011-04-26T02:54:00", "url": "https://files.pythonhosted.org/packages/04/49/72436f66ba8f180df60fc454efecb702616f08b62231dbb7f5cc1ab0180f/django-urlcrypt-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "e4eb9121a22b4ae420bffec802f82ebe", "sha256": "cf232646fb13fd68efddede424754d697c716d02d3e2e9d3ef31e48200c9acf2" }, "downloads": -1, "filename": "django-urlcrypt-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e4eb9121a22b4ae420bffec802f82ebe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12932, "upload_time": "2011-05-02T02:41:49", "url": "https://files.pythonhosted.org/packages/54/09/6b8a2b8265e6dd5fcfe1b283ae7725f994858280e2538b27150f0757eb2a/django-urlcrypt-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e4eb9121a22b4ae420bffec802f82ebe", "sha256": "cf232646fb13fd68efddede424754d697c716d02d3e2e9d3ef31e48200c9acf2" }, "downloads": -1, "filename": "django-urlcrypt-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e4eb9121a22b4ae420bffec802f82ebe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12932, "upload_time": "2011-05-02T02:41:49", "url": "https://files.pythonhosted.org/packages/54/09/6b8a2b8265e6dd5fcfe1b283ae7725f994858280e2538b27150f0757eb2a/django-urlcrypt-0.1.6.tar.gz" } ] }