Software /
code /
prosody-modules
Diff
mod_register_json/README.markdown @ 1803:4d73a1a6ba68
Convert all wiki pages to Markdown
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 28 Aug 2015 18:03:58 +0200 |
child | 2876:ea6b5321db50 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_register_json/README.markdown Fri Aug 28 18:03:58 2015 +0200 @@ -0,0 +1,78 @@ +--- +labels: +- 'Stage-Stable' +summary: 'Token based JSON registration & verification servlet.' +... + +Introduction +------------ + +This module let's you activate a httpserver interface to handle data +from webforms with POST and Base64 encoded JSON. + +Implementation Details +---------------------- + +Example Request format: + + POST /your_register_base_url HTTP/1.1 + Host: yourserveraddress.com:yourchoosenport + Content-Type: application/encoded + Content-Transfer-Encoding: base64 + + eyJ1c2VybmFtZSI6InVzZXJuYW1lb2ZjaG9pY2UiLCJwYXNzd29yZCI6InRoZXVzZXJwYXNzd29yZCIsImlwIjoidGhlcmVtb3RlYWRkcm9mdGhldXNlciIsIm1haWwiOiJ1c2VybWFpbEB1c2VybWFpbGRvbWFpbi50bGQiLCJhdXRoX3Rva2VuIjoieW91cmF1dGh0b2tlbm9mY2hvaWNlIn0= + +Where the encoded content is this (example) JSON Array: + + {"username":"usernameofchoice","password":"theuserpassword","ip":"theremoteaddroftheuser","mail":"usermail@usermaildomain.tld","auth\_token":"yourauthtokenofchoice"}\</code\> + +Your form implementation needs to pass **all** parameters, the +auth\_token is needed to prevent misuses, if the request is successfull +the server will answer with status code 200 and with the body of the +response containing the token which your web app can send via e-mail to +the user to complete the registration. + +Else, it will reply with the following http error codes: + +- 400 - if there's an error syntax; +- 401 - whenever an username is already pending registration or the + auth token supplied is invalid; +- 403 - whenever registration is forbidden (blacklist, filtered mail + etc.); +- 406 - if the username supplied fails nodeprepping; +- 409 - if the user already exists, or an user is associated already + with the supplied e-mail; +- 503 - whenever a request is throttled. + +The verification URL path to direct the users to will be: +**/your-base-path-of-choice/verify/** - on your Prosody's http server. + +The module for now stores a hash of the user's mail address to help slow +down duplicated registrations. + +It's strongly encouraged to have the web server communicate with the +servlet via https. + +Usage +----- + +Copy the module folder and all its contents (register\_json) into your +prosody modules' directory.Add the module your vhost of choice +modules\_enabled. + +Hint: pairing with mod\_register\_redirect is helpful, to allow server +registrations only via your webform. + +Optional configuration directives: + + reg_servlet_base = "/base-path/" -- Base path of the plugin (default is register_account) + reg_servlet_secure = true -- Have the plugin only process requests on https (default is true) + reg_servlet_ttime = seconds -- Specifies the time (in seconds) between each request coming from the same remote address. + reg_servlet_bl = { "1.2.3.4", "4.3.2.1" } -- The ip addresses in this list will be blacklisted and will not be able to submit registrations. + reg_servlet_wl = { "1.2.3.4", "4.3.2.1" } -- The ip addresses in this list will be ignored by the throttling. + reg_servlet_filtered_mails = { ".*banneddomain.tld", ".*deamailprovider.tld" } -- allows filtering of mail addresses via Lua patterns. + +Compatibility +------------- + +0.9