X-Git-Url: http://git.squeep.com/?p=squeep-authentication-module;a=blobdiff_plain;f=README.md;h=d5feea6e6b748df0b0c3558c9b9db740bc59cafa;hp=13d210d54bf24a6e3f6d28af8c0b5098e5208922;hb=HEAD;hpb=a44a8c411be1831e7b2418212ee0b295206ca27a diff --git a/README.md b/README.md index 13d210d..c4234f6 100644 --- a/README.md +++ b/README.md @@ -34,3 +34,39 @@ Class providing service handler functions for rendering and processing session l for local users, or redirecting to IndieAuth server and persisting transient state in session cookie. - `getAdminIA` interprets the returning redirect from the IndieAuth server. +- `getAdminSettings` renders the HTML account settings form +- `postAdminSettings` ingests and acts on account updates + +### Helpers + +- `sessionNavLinks` call from app templates to populate navLinks for account settings and logout + +### ResourceAuthenticator + +Class which fetches and validates resource identifiers and their secrets from database. + +Resources are assumed to be other services making API calls. + +This is just a time-gated pre-shared-secret HMAC Bearer token scheme. + +Default token format is a ':'-separated concatenation of: + +- resource identifier, which is a UUID, encoded as 24 bytes in base64url +- current epoch, encoded as base10 string +- salt value, randomness encoded as 28 bytes in base64url +- sha256 HMAC digest of previous data, encoded in base64url + +### Other Notes + +For the moment, this imposes a web structure of /admin/* for authentication management paths. + +The logger used should be able to mask these context fields: + +- `ctx.parsedBody.credential` +- `ctx.parsedBody.credential-old` +- `ctx.parsedBody.credential-new` +- `ctx.parsedBody.credential-new-2` +- `ctx.otpKey` +- `ctx.otpConfirmBox` +- `ctx.otpConfirmKey` +- `ctx.otpState`