tags:

views:

486

answers:

6

Is there a one and true way to add authentication in Pylons? I've seen so many different ways, but most of them are either outdated or too complex. Is there a tutorial somewhere that explains how to add authentication in a good and solid way?

A: 

AuthKit http://pylonsbook.com/en/1.1/authentication-and-authorization.html#authkit

Yaroslav
I've heard they stopped working on Authkit.
latest version dated 2009-10-05. I think it is recent enough comparing to other pylons related projects :)Do you have a link to support the fact that AuthKit is abandoned?
Yaroslav
A: 

nope, you are free to choose whatever is appropriate for your application. Now, if you consider that turbogears 2.0 is built on pylons and uses repoze.who for authentication, it would seem in that light that repoze.who is pretty popular and could conceivably be the generally accepted way of doing things according to turbogears. If you are looking for guidance.

Tom Willis
+3  A: 

Think about using repoze.who and repoze.what. They provide a strong pattern for authentication and can be customized easily because its customizable in places that matter.

If you don't get why "what" and "who" are two parts of an authentication scheme all one really needs to know is that "who" authenticates (perhaps with a username and password) and provides an identity of your users and "what" is for checking the authorization the user has in a request. If one wanted they could use "what" or "who" alone. But, IMHO it works best if you use just "who" or "who" and "what" together

Basically it works like this; On each request that requires authentication the "who" will be processed (applying its plugins) when the controller gets called - giving you an identity to work with. That is.. If a "what" is required or abort( 401 ) is called then a login page (a challenge) might be shown if the user needs credentials else a 403 Forbidden is displayed. It works well

Here is a tutorial on getting just "who" to work Authentication and Authorization with repoze.who. It outlines a very simple way to get started.

Rescommunes
+4  A: 

Pylon's official stance appears to be: We don't do authentication, you can plug in whatever authentication system you want.

Authkit works. It is very basic, but, does a relatively simple job rather well.

Repoze.who/Repoze.what works fairly well and is maintained/developed a bit more actively.

You could use RPX along with openid as mentioned on Tony Landis' blog

Or, you could use BlastOff which contains a bit more than just authentication. It comes with registration, user management, forgot my password functionality, etc.

A: 

I tried repoze.who and repoze.what but I didn't like them. Now, I use a variation of the solution described at http://wiki.pylonshq.com/display/pylonscookbook/Simple+Homegrown+Authentication

andref
There also is an advanced version: http://wiki.pylonshq.com/display/pylonscookbook/Advanced+Homegrown+Auth
andref