{"id":1463,"date":"2011-06-04T17:26:46","date_gmt":"2011-06-04T15:26:46","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=1463"},"modified":"2011-06-04T19:12:12","modified_gmt":"2011-06-04T17:12:12","slug":"django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/","title":{"rendered":"Django-urlcrypt, apr\u00e8s les contes c&#8217;est l&#8217;url de la crypte."},"content":{"rendered":"<p>Voila, comme dit dans le billet pr\u00e9c\u00e9dent, je vais donc faire deux billets de django app de mai, \u00e7a m&#8217;apprendra \u00e0 \u00eatre en retard.<\/p>\n<p>Donc la deuxi\u00e8me django app du mois sera django-urlcrypt. Une petite pr\u00e9cision avant d&#8217;aller plus loin, c&#8217;est une des toutes premi\u00e8res fois o\u00f9 je vais parler d&#8217;une app sans avoir fait plus que la tester sur un projet de test, sans avoir d&#8217;id\u00e9e pr\u00e9cise de o\u00f9 ni comment je vais l&#8217;utiliser &#8216;en vrai&#8217;.<\/p>\n<h1>1- O\u00f9 on le trouve, comment on l\u2019installe, tout \u00e7a quoi (et la doc)\u00a0?<\/h1>\n<p>Alors on le trouve soit sur sa page <a title=\"django-urlcrypt\" href=\"http:\/\/pypi.python.org\/pypi\/django-urlcrypt\" target=\"_blank\">pypi<\/a> soit sur sa page <a title=\"django-urlcrypt\" href=\"https:\/\/github.com\/dziegler\/django-urlcrypt\" target=\"_blank\">github<\/a>.<\/p>\n<p>Pour l&#8217;installation l\u00e0 encore, les trois moyens habituels\u00a0:<\/p>\n<ul>\n<li> par easy_install<\/li>\n<li> pip<\/li>\n<li> un petit git clone des familles<\/li>\n<\/ul>\n<p>La doc, l\u00e0 c&#8217;est comme l&#8217;app pr\u00e9c\u00e9dente, elle est limit\u00e9e au contenu de la page de pypi ou au fichier <a title=\"readme\" href=\"https:\/\/github.com\/dziegler\/django-urlcrypt#readme\" target=\"_blank\">Readme.rst<\/a>.<\/p>\n<p>Bon alors c&#8217;est vrai que la doc est suffisante pour comprendre comment l&#8217;app marche, mais sur une app qui est aussi &#8216;sensible&#8217;, une bonne lecture du code ne fait pas de mal (c&#8217;est d&#8217;ailleurs ce que j&#8217;ai fait quand j&#8217;ai commenc\u00e9 \u00e0 faire joujou avec).<\/p>\n<h1>2- Mais au fait, \u00e0 quoi \u00e7a sert\u00a0?<\/h1>\n<p>En fait l&#8217;app a deux utilit\u00e9 m\u00eame si une seule est vraiment mise en avant sur la doc de l&#8217;app. La premi\u00e8re c&#8217;est de fournir aux utilisateurs une url ressemblant \u00e0 \u00e7a :\u00a0 http:\/\/www.mydomain.com\/r\/TkNJBkNFAghDWkdFGPUAQEfcDUJfEBIREgEUFl1BQ18IQkdDUUcPSh4ADAYAWhYKHh8KHBsHEw qui les authentifiera automatiquement et qui en plus les redirigera vers l&#8217;url que vous aurez voulu.\u00a0 (genre le renvoyer sur \/profil ou \/inbox)<\/p>\n<p>L&#8217;autre fonctionnalit\u00e9 moins mise en avant, c&#8217;est que l&#8217;on peut encoder des infos dans l&#8217;url, dans un message qui se trouve \u00eatre un dictionnaire. Alors honn\u00eatement je ne sais pas trop encore \u00e0 quoi cela peut servir, mais je trouve l&#8217;id\u00e9e coolos.<\/p>\n<h1>3- Comment \u00e7a marche\u00a0?<\/h1>\n<p>C&#8217;est tout simple.<\/p>\n<p>Dans une vue, on peut utiliser la fonction urlcrypt.generate_login_token qui prend en param l&#8217;utilisateur et l&#8217;url de redirect et qui g\u00e9n\u00e9re le token qui encode le tout. Ensuite il suffit de cr\u00e9er l&#8217;url compl\u00e8te qui va bien.<\/p>\n<p>Dans un template, on utilise le template tags encoded_url qui prend comme argument un user et une url de redirect.<\/p>\n<p>Enfin on peut utiliser les fonctions urlcrypt.encode_token et urlcrypt.decode_token<br \/>\nqui permettront de crypter \/ d\u00e9crypter un message contenu dans un dictionnaire (voir l&#8217;aide pour plus d&#8217;infos).<\/p>\n<p>Au niveau des configurations possibles, on peut configurer\u00a0:<\/p>\n<ul>\n<li> \u00e0 combien de requ\u00eates \u00e0 droit un visiteur<\/li>\n<li> l&#8217;url de fallblack si l&#8217;authentification contenu dans l&#8217;url echoue<\/li>\n<li> un path vers une cl\u00e9 priv\u00e9e RSA qui permettra d&#8217;ajouter un cryptage RSA lorsque l&#8217;on g\u00e9n\u00e8re le token.\u00a0 L&#8217;utilisation de ce param\u00e8tre est tr\u00e8s tr\u00e8s fortement recommand\u00e9 (pour rappel pour g\u00e9n\u00e9r\u00e9 le cl\u00e9\u00a0: ssh-keygen -t rsa -f  )<\/li>\n<\/ul>\n<h1>4- conclusion<\/h1>\n<p>Le m\u00e9canisme de login par url crypt\u00e9e me s\u00e9duit beaucoup. Mais d&#8217;un autre cot\u00e9 je me pose des questions au niveau s\u00e9curit\u00e9. Parce que l&#8217;url, l&#8217;utilisateur il va devoir la stocker. Et qu&#8217;autant m\u00e9moriser un mot de passe, on peut le faire, autant apprendre une url&#8230;, qu&#8217;en pensez vous\u00a0?<\/p>\n<p>La question de la dur\u00e9e de vie de l&#8217;url me semble aussi importante. J&#8217;aurais aim\u00e9 avoir dans l&#8217;app un syst\u00e8me qui permette de rendre des url obsol\u00e8tes parce que trop vieilles..<\/p>\n<p>Enfin concernant la deuxi\u00e8me m\u00e9thode d&#8217;utilisation, \u00e0 savoir encoder des messages dans l&#8217;url, je trouve l&#8217;id\u00e9e ravissante, j&#8217;ai envie de l&#8217;utiliser mais je ne sais pas \u00e0 quoi elle pourrait bien me servir. A r\u00e9fl\u00e9chir donc.<\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #ff0000;\">UPDATE:<\/span><\/h2>\n<p>on vient de me pointer quelques probl\u00e8mes qui existent avec cette app (<a href=\"http:\/\/www.reddit.com\/r\/django\/comments\/e040c\/djangourlcrypt\/\">discussion visible ici<\/a>) Apparement un des probl\u00e8mes a \u00e9t\u00e9 r\u00e9gl\u00e9 en utilisant RSA (mais son utilisation n&#8217;est toujours pas obligatoire) mais il me semble que le hash du password est toujours utilis\u00e9 dans certain cas. Ce qui n&#8217;est vraiment pas une bonne id\u00e9e. En l&#8217;\u00e9tat l&#8217;app n&#8217;est donc pas forc\u00e9ment \u00e0 utiliser, mais plut\u00f4t \u00e0 \u00e9tudier pour imaginer son propre syst\u00e8me.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voila, comme dit dans le billet pr\u00e9c\u00e9dent, je vais donc faire deux billets de django app de mai, \u00e7a m&#8217;apprendra \u00e0 \u00eatre en retard. Donc la deuxi\u00e8me django app du mois sera django-urlcrypt. Une petite pr\u00e9cision avant d&#8217;aller plus loin, c&#8217;est une des toutes premi\u00e8res fois o\u00f9 je vais parler d&#8217;une app sans avoir fait &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Django-urlcrypt, apr\u00e8s les contes c&#8217;est l&#8217;url de la crypte.<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[35],"tags":[],"class_list":["post-1463","post","type-post","status-publish","format-standard","hentry","category-la-django-app-du-mois"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"pr\u00e9sentation pour la deuxi\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\u00e9es.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"J-Mad\"\/>\n\t<meta name=\"keywords\" content=\"la django-app du mois\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Le Mad Blog | juste un blog\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Django-urlcrypt, apr\u00e8s les contes c&#039;est l&#039;url de la crypte. | Le Mad Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"pr\u00e9sentation pour la deuxi\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\u00e9es.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2011-06-04T15:26:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2011-06-04T17:12:12+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Django-urlcrypt, apr\u00e8s les contes c&#039;est l&#039;url de la crypte. | Le Mad Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"pr\u00e9sentation pour la deuxi\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\u00e9es.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#article\",\"name\":\"Django-urlcrypt, apr\\u00e8s les contes c'est l'url de la crypte. | Le Mad Blog\",\"headline\":\"Django-urlcrypt, apr\\u00e8s les contes c&#8217;est l&#8217;url de la crypte.\",\"author\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#organization\"},\"datePublished\":\"2011-06-04T17:26:46+02:00\",\"dateModified\":\"2011-06-04T19:12:12+02:00\",\"inLanguage\":\"fr-fr\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#webpage\"},\"articleSection\":\"La Django-app du mois\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/#listItem\",\"name\":\"D\\u00e9veloppement\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/#listItem\",\"position\":2,\"name\":\"D\\u00e9veloppement\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/#listItem\",\"name\":\"Python\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/#listItem\",\"position\":3,\"name\":\"Python\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/#listItem\",\"name\":\"Django\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/#listItem\",\"name\":\"D\\u00e9veloppement\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/#listItem\",\"position\":4,\"name\":\"Django\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/la-django-app-du-mois\\\/#listItem\",\"name\":\"La Django-app du mois\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/#listItem\",\"name\":\"Python\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/la-django-app-du-mois\\\/#listItem\",\"position\":5,\"name\":\"La Django-app du mois\",\"item\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/la-django-app-du-mois\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#listItem\",\"name\":\"Django-urlcrypt, apr\\u00e8s les contes c&#8217;est l&#8217;url de la crypte.\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/#listItem\",\"name\":\"Django\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#listItem\",\"position\":6,\"name\":\"Django-urlcrypt, apr\\u00e8s les contes c&#8217;est l&#8217;url de la crypte.\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/category\\\/developpement\\\/python\\\/django\\\/la-django-app-du-mois\\\/#listItem\",\"name\":\"La Django-app du mois\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#organization\",\"name\":\"Le Mad Blog\",\"description\":\"juste un blog\",\"url\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/#author\",\"url\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/\",\"name\":\"J-Mad\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6eb44e8eb2792583de23c66deb033f8b5ef4f7f7c535464d77cb9f643012d138?s=96&d=retro&r=g\",\"width\":96,\"height\":96,\"caption\":\"J-Mad\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#webpage\",\"url\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/\",\"name\":\"Django-urlcrypt, apr\\u00e8s les contes c'est l'url de la crypte. | Le Mad Blog\",\"description\":\"pr\\u00e9sentation pour la deuxi\\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\\u00e9es.\",\"inLanguage\":\"fr-fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/2011\\\/06\\\/04\\\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/author\\\/j-mad\\\/#author\"},\"datePublished\":\"2011-06-04T17:26:46+02:00\",\"dateModified\":\"2011-06-04T19:12:12+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/\",\"name\":\"Le Mad Blog\",\"description\":\"juste un blog\",\"inLanguage\":\"fr-fr\",\"publisher\":{\"@id\":\"https:\\\/\\\/j-mad.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Django-urlcrypt, apr\u00e8s les contes c'est l'url de la crypte. | Le Mad Blog","description":"pr\u00e9sentation pour la deuxi\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\u00e9es.","canonical_url":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/","robots":"max-image-preview:large","keywords":"la django-app du mois","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#article","name":"Django-urlcrypt, apr\u00e8s les contes c'est l'url de la crypte. | Le Mad Blog","headline":"Django-urlcrypt, apr\u00e8s les contes c&#8217;est l&#8217;url de la crypte.","author":{"@id":"https:\/\/j-mad.com\/blog\/author\/j-mad\/#author"},"publisher":{"@id":"https:\/\/j-mad.com\/blog\/#organization"},"datePublished":"2011-06-04T17:26:46+02:00","dateModified":"2011-06-04T19:12:12+02:00","inLanguage":"fr-fr","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#webpage"},"isPartOf":{"@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#webpage"},"articleSection":"La Django-app du mois"},{"@type":"BreadcrumbList","@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/j-mad.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/#listItem","name":"D\u00e9veloppement"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/#listItem","position":2,"name":"D\u00e9veloppement","item":"https:\/\/j-mad.com\/blog\/category\/developpement\/","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/#listItem","name":"Python"},"previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/#listItem","position":3,"name":"Python","item":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/#listItem","name":"Django"},"previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/#listItem","name":"D\u00e9veloppement"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/#listItem","position":4,"name":"Django","item":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/#listItem","name":"La Django-app du mois"},"previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/#listItem","name":"Python"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/#listItem","position":5,"name":"La Django-app du mois","item":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/","nextItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#listItem","name":"Django-urlcrypt, apr\u00e8s les contes c&#8217;est l&#8217;url de la crypte."},"previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/#listItem","name":"Django"}},{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#listItem","position":6,"name":"Django-urlcrypt, apr\u00e8s les contes c&#8217;est l&#8217;url de la crypte.","previousItem":{"@type":"ListItem","@id":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/#listItem","name":"La Django-app du mois"}}]},{"@type":"Organization","@id":"https:\/\/j-mad.com\/blog\/#organization","name":"Le Mad Blog","description":"juste un blog","url":"https:\/\/j-mad.com\/blog\/"},{"@type":"Person","@id":"https:\/\/j-mad.com\/blog\/author\/j-mad\/#author","url":"https:\/\/j-mad.com\/blog\/author\/j-mad\/","name":"J-Mad","image":{"@type":"ImageObject","@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/6eb44e8eb2792583de23c66deb033f8b5ef4f7f7c535464d77cb9f643012d138?s=96&d=retro&r=g","width":96,"height":96,"caption":"J-Mad"}},{"@type":"WebPage","@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#webpage","url":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/","name":"Django-urlcrypt, apr\u00e8s les contes c'est l'url de la crypte. | Le Mad Blog","description":"pr\u00e9sentation pour la deuxi\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\u00e9es.","inLanguage":"fr-fr","isPartOf":{"@id":"https:\/\/j-mad.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/#breadcrumblist"},"author":{"@id":"https:\/\/j-mad.com\/blog\/author\/j-mad\/#author"},"creator":{"@id":"https:\/\/j-mad.com\/blog\/author\/j-mad\/#author"},"datePublished":"2011-06-04T17:26:46+02:00","dateModified":"2011-06-04T19:12:12+02:00"},{"@type":"WebSite","@id":"https:\/\/j-mad.com\/blog\/#website","url":"https:\/\/j-mad.com\/blog\/","name":"Le Mad Blog","description":"juste un blog","inLanguage":"fr-fr","publisher":{"@id":"https:\/\/j-mad.com\/blog\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Le Mad Blog | juste un blog","og:type":"article","og:title":"Django-urlcrypt, apr\u00e8s les contes c'est l'url de la crypte. | Le Mad Blog","og:description":"pr\u00e9sentation pour la deuxi\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\u00e9es.","og:url":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/","article:published_time":"2011-06-04T15:26:46+00:00","article:modified_time":"2011-06-04T17:12:12+00:00","twitter:card":"summary","twitter:title":"Django-urlcrypt, apr\u00e8s les contes c'est l'url de la crypte. | Le Mad Blog","twitter:description":"pr\u00e9sentation pour la deuxi\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\u00e9es."},"aioseo_meta_data":{"post_id":"1463","title":"Django-urlcrypt, apr\u00e8s les contes c'est l'url de la crypte. | #site_title","description":"pr\u00e9sentation pour la deuxi\u00e8me app du mois de mai, de django-urlcrypt, petite app qui permet de fournir des url de login crypt\u00e9es.","keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[],"defaultGraph":"","defaultPostTypeGraph":""},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-20 21:12:21","updated":"2025-06-03 22:01:33","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\/category\/developpement\/\" title=\"D\u00e9veloppement\">D\u00e9veloppement<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/\" title=\"Python\">Python<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/\" title=\"Django\">Django<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/\" title=\"La Django-app du mois\">La Django-app du mois<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tDjango-urlcrypt, apr\u00e8s les contes c\u2019est l\u2019url de la crypte.\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/j-mad.com\/blog"},{"label":"D\u00e9veloppement","link":"https:\/\/j-mad.com\/blog\/category\/developpement\/"},{"label":"Python","link":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/"},{"label":"Django","link":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/"},{"label":"La Django-app du mois","link":"https:\/\/j-mad.com\/blog\/category\/developpement\/python\/django\/la-django-app-du-mois\/"},{"label":"Django-urlcrypt, apr\u00e8s les contes c&#8217;est l&#8217;url de la crypte.","link":"https:\/\/j-mad.com\/blog\/2011\/06\/04\/django-urlcrypt-apres-les-contes-cest-lurl-de-la-crypte\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-nB","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=1463"}],"version-history":[{"count":3,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1463\/revisions"}],"predecessor-version":[{"id":1465,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1463\/revisions\/1465"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=1463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=1463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=1463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}