Software /
code /
prosody-modules
File
misc/sasl/example.lua @ 5516:f25df3af02c1
mod_client_management: Include client software version number in listing
Should you ever wish to revoke a client by version number, e.g. for
security reasons affecting certain versions, then it would be good to at
the very least see which version is used.
Also includes the OAuth2 software ID, an optional unique identifier that
should be the same for all installations of a particular software.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 03 Jun 2023 19:21:39 +0200 |
parent | 2354:7d2fcc7a15f7 |
line wrap: on
line source
local method = {} local method_mt = { __index = method } -- This should return a set of supported mechanisms function method:mechanisms() return { ["OAUTH-SOMETHING"] = true; } end -- Called when a mechanism is selecetd function method:select(mechanism) return mechanism == "OAUTH-SOMETHING"; end -- Called for each message received function method:process(message) -- parse the message if false then -- To send a SASL challenge: return "challenge", "respond-to-this"; end if false then -- To fail, send: return "failure", "not-authorized", "Helpful error message here"; end self.username = "someone"; return "success"; end local function new_sasl() return setmetatable({}, method_mt); end function method:clean_clone() return setmetatable({}, method_mt); end local provider = {} function provider.get_sasl_handler() return new_sasl(); end module:provides("auth", provider);