You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Jan Lehnardt <ja...@apache.org> on 2009/11/27 00:15:07 UTC

Storing OAuth tokens in the users database

Hi all,

I created a branch* based on trunk that allows storing 
of OAuth tokens, users and secrets in the users 
database instead of the ini file / config system. 

The design is pretty simple:

If you set the config var `use_users_db` to `true` in the
`couch_httpd_oauth ` section of your ini file, CouchDB 
will look for all OAuth information inside the users database 
for each OAuth request that comes in.

Internally, it creates a new design document with three
views that are called for authenticating each request.
Future versions could merge the three views to two or
one, but I kept it simple for now.

The branch comes with tests and all other tests still
run fine. I haven't done any heavy duty performance
analysis, but I hope Canonical can step in here (since
they can put this to good use on UbuntuOne).

There's also a special version of this branch** that is 
based on 0.10.x + Canonical specific patches. Since 
we won't put any new features in 0.10 and this 
clearly is a new feature, I only propose this branch to
be merged into trunk / 0.11. The 0.10 version is still
available on my Github repo for educational purposes
(and Canonical of course).

I hope you can give the branch a closer look and tell
me if it looks like something we want to have merged
into trunk. Thanks for your time!

* http://github.com/janl/couchdb/tree/oauth-tokens-in-user-db

Cheers
Jan
--
** http://github.com/janl/couchdb/tree/ubuntuone


Re: Storing OAuth tokens in the users database

Posted by Benoit Chesneau <bc...@gmail.com>.
On Fri, Nov 27, 2009 at 12:15 AM, Jan Lehnardt <ja...@apache.org> wrote:
> Hi all,
>
> I created a branch* based on trunk that allows storing
> of OAuth tokens, users and secrets in the users
> database instead of the ini file / config system.
>
> The design is pretty simple:
>
> If you set the config var `use_users_db` to `true` in the
> `couch_httpd_oauth ` section of your ini file, CouchDB
> will look for all OAuth information inside the users database
> for each OAuth request that comes in.
>
> Internally, it creates a new design document with three
> views that are called for authenticating each request.
> Future versions could merge the three views to two or
> one, but I kept it simple for now.
>
> The branch comes with tests and all other tests still
> run fine. I haven't done any heavy duty performance
> analysis, but I hope Canonical can step in here (since
> they can put this to good use on UbuntuOne).
>
> There's also a special version of this branch** that is
> based on 0.10.x + Canonical specific patches. Since
> we won't put any new features in 0.10 and this
> clearly is a new feature, I only propose this branch to
> be merged into trunk / 0.11. The 0.10 version is still
> available on my Github repo for educational purposes
> (and Canonical of course).
>
> I hope you can give the branch a closer look and tell
> me if it looks like something we want to have merged
> into trunk. Thanks for your time!
>
> * http://github.com/janl/couchdb/tree/oauth-tokens-in-user-db
>
> Cheers
> Jan
> --
> ** http://github.com/janl/couchdb/tree/ubuntuone
>
>

Now that we have reader acl in couchdb, maybe we can do this. Would be
useful when you want to store lot of token. I will test it on a recent
couchdb today I hope there aren't too many changes.

- benoƮt