jiti-meet/prosody-plugins/token/util.lib.lua

41 lines
956 B
Lua
Raw Normal View History

-- Token authentication
-- Copyright (C) 2015 Atlassian
local jwt = require "luajwtjitsi";
local _M = {};
local function _verify_token(token, appId, appSecret, disableRoomNameConstraints)
local claims, err = jwt.decode(token, appSecret, true);
if claims == nil then
return nil, err;
end
2016-07-18 18:27:14 +00:00
local alg = claims["alg"];
if alg ~= nil and (alg == "none" or alg == "") then
return nil, "'alg' claim must not be empty";
end
local issClaim = claims["iss"];
if issClaim == nil then
return nil, "'iss' claim is missing";
end
if issClaim ~= appId then
return nil, "Invalid application ID('iss' claim)";
end
local roomClaim = claims["room"];
2016-06-13 21:11:44 +00:00
if roomClaim == nil and disableRoomNameConstraints ~= true then
return nil, "'room' claim is missing";
end
return true;
end
function _M.verify_token(token, appId, appSecret, disableRoomNameConstraints)
return _verify_token(token, appId, appSecret, disableRoomNameConstraints);
end
2016-06-13 21:11:44 +00:00
return _M;