fr:tips:phashlogin
Table des matières
phash login
- Astuce de emauvaisfr [at] yahoo [dot] fr
- Testée sur Dokuwiki 2008-05-05
Objectif
- Par défaut vous ne pouvez pas accéder aux flux RSS de votre dokuwiki si vous n'êtes pas authentifié.
- Après cette modification, vous pourrez vous authentifier directement dans l'URL (GET) en utilisant un hash de votre mot de passe (plutôt que votre mot de passe en clair).
- Vous pourrez alors ajouter des flux dokuwiki à votre lecteur RSS par exemple.
Résultat
Comment faire
- Ajout du paramètre phash dans ./inc/auth.php :
[...] // do the login either by cookie or provided credentials if($conf['useacl']){ if($auth){ if (!isset($_REQUEST['u'])) $_REQUEST['u'] = ''; if (!isset($_REQUEST['p'])) $_REQUEST['p'] = ''; if (!isset($_REQUEST['r'])) $_REQUEST['r'] = ''; //Possibilite de passer un parametre phash contenant le hash du mot de passe plutot que le mot de passe en clair... //Ability to send a phash parameter (the password hash) instead of the password itself if (isset($_REQUEST['phash'])) $_REQUEST['p'] = PMA_blowfish_decrypt(urldecode($_REQUEST['phash']),auth_cookiesalt()); ///phash [...]
- Modification des liens RSS dans ./inc/template.php pour ajouter le paramètre phash :
[...] if($alt){ //Passage de l'utilisateur et du hash du mot de passe dans l'adresse du flux rss //Sends the user and the password hash into the RSS URL if (!$_SESSION[DOKU_COOKIE]['auth']['user'] || !$_SESSION[DOKU_COOKIE]['auth']['pass']) { $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', 'title'=>'Recent Changes', 'href'=>DOKU_BASE.'feed.php'); $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', 'title'=>'Current Namespace', 'href'=>DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']); } else { $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', 'title'=>'Recent Changes', 'href'=>DOKU_BASE.'feed.php?u='.urlencode($_SESSION[DOKU_COOKIE]['auth']['user']).'&phash='.urlencode($_SESSION[DOKU_COOKIE]['auth']['pass'])); $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', 'title'=>'Current Namespace', 'href'=>DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace'].'&u='.urlencode($_SESSION[DOKU_COOKIE]['auth']['user']).'&phash='.urlencode($_SESSION[DOKU_COOKIE]['auth']['pass'])); } ///phash if($ACT == 'search'){ //Passage de l'utilisateur et du hash du mot de passe dans l'adresse du flux rss //Sends the user and the password hash into the RSS URL if (!$_SESSION[DOKU_COOKIE]['auth']['user'] || !$_SESSION[DOKU_COOKIE]['auth']['pass']) { $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', 'title'=>'Search Result', 'href'=>DOKU_BASE.'feed.php?mode=search&q='.$QUERY); } else { $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', 'title'=>'Search Result', 'href'=>DOKU_BASE.'feed.php?mode=search&q='.$QUERY.'&u='.urlencode($_SESSION[DOKU_COOKIE]['auth']['user']).'&phash='.urlencode($_SESSION[DOKU_COOKIE]['auth']['pass'])); } ///phash } [...]
- Vous pouvez également modifier le fichier footer.html de votre modèle de page (template) (./lib/tpl/arctic/footer.html par example) :
[...] <a target="_blank" href="<?php echo DOKU_BASE?>feed.php<?if ($_SESSION[DOKU_COOKIE]['auth']['user'] && $_SESSION[DOKU_COOKIE]['auth']['pass']) echo "?u=".urlencode($_SESSION[DOKU_COOKIE]['auth']['user'])."&phash=".urlencode($_SESSION[DOKU_COOKIE]['auth']['pass']);?>" title="Recent changes RSS feed"><img src="<?php echo DOKU_TPL?>images/button-rss.png" width="80" height="15" alt="Recent changes RSS feed" border="0" /></a> [...]
Discussion
- Dites-moi tout…
fr/tips/phashlogin.txt · Dernière modification : 2008-09-25 10:53 de 82.66.222.141