INTRODUCTION
The code to run the UrSign backend, managing all user data.
CONFIGURATION
You need Python 3 (with SQLite3 support) and flask, bcrypt and beaker (all from PyPI).
USAGE/TESTING
Instructions on how to test the server's basic features are shown below. For detailed unit testing
see the ursign-server-test repository.
$ sqlite3 database.db < schema.sql
$ python main.py
# registering with curl
$ curl -d "username=iyra&password=secret" localhost:5000/register
{"error":""}
# no error! now, logging in with curl
$ curl -d "username=iyra&password=secret" localhost:5000/login
{"error":""}
# correct details, nice!
$ curl -d "username=homer&password=secret" localhost:5000/login
{"error":"bad-username"}
# user with that username doesn't exist
$ curl -d "password=secret" localhost:5000/login
{"error":"incomplete-params"}
# bad parameters, you need a username to log in! (same error if you omit the password too)
$ curl -d "username=iyra&password=dumb_guess" localhost:5000/login
{"error":"bad-login"}
# bad password
$ curl -d "username=iyra&password=secret" localhost:5000/register
{"error":"username-taken"}
# username's already been registered so we can't re-use it for another account