Web

If you want to add support for other ORM:

1. Create a class which implement IAuth interface with name convention like _OrmNameAuth.

  1. Override register and login methods

3. Add model check logic in WebHandler’s register and login methods.

Authentication interface

class usernado.web.IAuth

Every ORM specific authentication class MUST implement this Interface and override register and login mehtods.

abstract static login(request: HTTPRequest, model: Union[peewee.Model, sqlalchemy.orm.declarative_base], username: str, password: str) bool

Abstract login method.

Parameters
  • request (tornado.httpclient.HTTPRequest) – Incoming HTTP request.

  • model (Union[peewee.Model, sqlalchemy.orm.declarative_base]) – ORM model.

  • username (str) – Username.

  • password (str) – Password.

Returns

True if user registration done successfully otherwise False.

Return type

bool

abstract static register(request: HTTPRequest, model: Union[peewee.Model, sqlalchemy.orm.declarative_base], username: str, password: str) bool

Abstract register method.

Parameters
  • request (tornado.httpclient.HTTPRequest) – Incoming HTTP request.

  • model (Union[peewee.Model, sqlalchemy.orm.declarative_base]) – ORM model.

  • username (str) – Username.

  • password (str) – Password.

Returns

True if user registration done successfully otherwise False.

Return type

bool

WebHandler

class usernado.web.WebHandler(application: Application, request: HTTPServerRequest, **kwargs: Any)

Every HTTP request handler MUST inherit from WebHandler.

property authenticate: bool

Check if current user is authenticated?

Return type

bool

get_current_user() Optional[bytes]

To implement user authentication we need to override this method.

for more information, take a look at Tornado documentation.

Returns

A secure cookie.

Return type

Optional[bytes]

get_escaped_argument(name: str, default: Optional[str] = None, strip: bool = True) str

Returns the xhtml escaped value of the argument with the given name.

Parameters
  • name (str) – Name of the desired argument.

  • default (Optional[str], optional) – Default value for non existing argument, defaults to None.

  • strip (bool, optional) – Strip argument value, defaults to True.

Returns

Escaped argument.

Return type

str

login(model: Union[peewee.Model, sqlalchemy.orm.declarative_base], username: str, password: str) bool

Signin user with provided username and password.

Parameters
  • model (Union[peewee.Model, sqlalchemy.orm.declarative_base]) – ORM model.

  • username (str) – Username.

  • password (str) – Password.

Raises

UnsupportedUserModelError – Raised when auth operation for model was not provided.

Returns

True if user login done successfully otherwise False.

Return type

bool

logout() None

Logout user.

redirect_to_route(name: str, *args: Any) None

Redirect to particular route.

Parameters

name (str) – Named route

register(model: Union[peewee.Model, sqlalchemy.orm.declarative_base], username: str, password: str) bool

Signup user with provided username and password.

Parameters
  • model (Union[peewee.Model, sqlalchemy.orm.declarative_base]) – ORM model.

  • username (str) – Username.

  • password (str) – Password.

Raises

UnsupportedUserModelError – Raised when auth operation for model was not provided.

Returns

True if user registration done successfully otherwise False.

Return type

bool

Exceptions

exception usernado.web.UserDoesNotExistError
exception usernado.web.UserAlreadyExistError
exception usernado.web.PermissionDeniedError
exception usernado.web.UnsupportedUserModelError