Web
If you want to add support for other ORM:
1. Create a class which implement IAuth
interface with name convention like _OrmNameAuth
.
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
andlogin
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