CookieAuth
<< Page Drafts | Cookbook-V1 | Restricting Edits >>
Note: The recipes here are for PmWiki versions 0.6 and 1.0 only. For PmWiki 2.0 recipes, see Cookbook.
Goal
PmWiki's default method for handling password authentication does not work on some web hosts (such as Powweb). This recipe provides some rudimetary authentication that should work on all hosts.
Solution
CookieAuth uses a login form that stores two cookies, one containing the user name and one containing an MD5 hash of the user name and a secret key. PmWiki's authentication function is replaced with one that checks the presence of these cookies. This technique is presented in chapter 44 of the book [(approve links) edit diff].
While this seems secure to me, I am not a security expert so I make no guarantees.
Files
Installation
- Extract the archive and place cookieauth.php into your local/ directory.
- Edit your local/config.php as follows:
- Add the line
require_once('local/cookieauth.php');
- Set the
$CookieAuthMd5Hash
variable to a secret key -- a string of at least 20 random characters should suffice. You don't need to remember this key, it's just used to generate a cookie that can not be faked without knowledge of the key. - Set the
$DefaultPasswords['admin']
variable to the desired password. - Optionally set the
$CookieAuthSuccessUrl
to the page you'd like to go to after a successful login.
- Add the line
Usage
- To login, add
?action=login
to any page address. Typically you would add a link such asThisWiki:?action=login
to your sidebar or homepage. You will need to enter a username but the actual value of the username is unimportant in this version of CookieAuth. - To set page passwords, append
?action=attr
to the page's URL. The actual passwords entered here are ignored by CookieAuth - it only cares whether a password is set for a given action or not. So to make a page read-only put "yes" in the "Edit" password field. To clear a password, blank the appropriate field. - To logout, simply visit the login page again.
Limitations
Unlike PmWiki's default authentication system, CookieAuth uses only a single admin password. It could easily be adapted to support multiple users, but it will never do different passwords on each page very effectively because there is only a single login page rather than the pop-up login boxes.
Comments & Bugs
None so far...
Contributors
pmwiki-2.3.38 -- Last modified by {{Pm}}