In TiddlyWeb, authentication and authorization is modeled around users, bags, policies, challengers and credentials extractors.

At this point, managing users is done with server side code. Users, passwords, challengers and credentials extractors and configuration are managed either from the command line using twanager or in plugin code.

There is no core HTTP API exposure of the User datastore entities in the core code. There is an experimental plugins called tidldywebplugins.socialusers which provides one, but it has some limitations. It can be acquired from PyPI at http://pypi.python.org/pypi/tiddlywebplugins.socialusers

Here are a list of facts about users:
TiddlyWeb tries to make it so challenges happen before a user enters into the TiddlyWiki space. That is, if we know there is going to be a need for a user, they get challenged outside of TiddlyWiki. However this is not at all required. A TiddlyWiki plugin could use XHR to make posts to the existing challenger forms and deal with the results (i.e. accept the cookie or other magic the challenger provides). Figuring out how to use the forms is as simple as looking at them.

Challengers are by design triggered only when unauthorized content is accessed but can be explicitly triggered by going to the /challenge URL on your installation.

TiddlyWeb goes to great lengths to make very few assumptions about who or what is talking to it. If you want to auth with javascript, curl, python, a browser, carrier pigeons, as long as you are sending HTTP to the server, you've got a chance of getting it right.