Django-urlcrypt adalah aplikasi Django yang mengenkripsi informasi di url, seperti login.
Sebagai contoh, asumsikan saya memiliki pola url yang terlihat seperti ini:
urlpatterns = pola ('',
& Nbsp; url (r '^ inbox / $', 'message_inbox', nama = 'message_inbox'),
& Nbsp; (r '^ r /', termasuk ('urlcrypt.urls')),
)
Komentar Developer
Saya bisa menggunakan Django-urlcrypt untuk menghasilkan url untuk pengguna yang terlihat seperti:
http://www.mydomain.com/r/TkNJBkNFAghDWkdFGPUAQEfcDUJfEBIREgEUFl1BQ18IQkdDUUcPSh4ADAYAWhYKHh8KHBsHEw
dan akan secara otomatis login orang itu dan mengarahkan mereka ke / inbox /.
Instalasi
& Nbsp; 1. easy_install Django-urlcrypt atau pip menginstal Django-urlcrypt
& Nbsp; 2. Tambahkan urlcrypt ke INSTALLED_APPS Anda
& Nbsp; 3. Dalam urls.py add:
& Nbsp; (r '^ r /', termasuk ('urlcrypt.urls')),
Penggunaan
Dalam pandangan:
dari django.core.urlresolvers impor terbalik
dari urlcrypt impor lib sebagai urlcrypt
tanda = urlcrypt.generate_login_token (user, reverse ('message_inbox'))
encoded_url = membalikkan ('urlcrypt_redirect', args = (token,))
# Anda akan terlihat sedikit berbeda karena Anda memiliki SECRET_KEY berbeda, tapi kira-kira
# Encoded_url == / r / TkNJBkNFAghDWkdFGPUAQEfcDUJfEBIREgEUFl1BQ18IQkdDUUcPSh4ADAYAWhYKHh8KHBsHEw
Dalam template:
{% Beban urlcrypt_tags%}
klik saya login sebagai {{}} user.username dan pergi ke {% url message_inbox%}
Lanjutan penggunaan lib:
dari urlcrypt impor lib sebagai urlcrypt
pesan = {
& Nbsp; 'url': u '/ pengguna / berikut /',
& Nbsp; 'user_id': '12345'
}
tanda = urlcrypt.encode_token (pesan ['user_id'], pesan ['url'])
decoded_message = urlcrypt.decode_token (token, ('user_id', 'url', 'timestamp'))
>>> Cetak tanda
TkNJBkNFAghDWkdFGPUAQEfcDUJfEBIREgEUFl1BQ18IQkdDUUcPSh4ADAYAWhYKHh8KHBsHEw
>>> Cetak decoded_message
{'Url': '/ pengguna / berikut', 'user_id': '12345'}
Pengaturan
URLCRYPT_LOGIN_URL default: LOGIN_URL
Jika otentikasi urlcrypt gagal, diarahkan ke URLCRYPT_LOGIN_URL.
RUNNING_TESTS default: Salah
Set RUNNING_TESTS ke True saat menjalankan tes urlcrypt
Persyaratan :.
- Python
Komentar tidak ditemukan