1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- -- Token authentication
- -- Copyright (C) 2015 Atlassian
-
- local jwt = require "luajwtjitsi";
-
- local _M = {};
-
- local function _get_room_name(token, appSecret)
- local claims, err = jwt.decode(token, appSecret);
- if claims ~= nil then
- return claims["room"];
- else
- return nil, err;
- end
- end
-
- local function _verify_token(token, appId, appSecret, roomName, disableRoomNameConstraints)
-
- local claims, err = jwt.decode(token, appSecret, true);
- if claims == nil then
- return nil, err;
- end
-
- 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"];
- if roomClaim == nil and disableRoomNameConstraints ~= true then
- return nil, "'room' claim is missing";
- end
- if roomName ~= nil and roomName ~= roomClaim and disableRoomNameConstraints ~= true then
- return nil, "Invalid room name('room' claim)";
- end
-
- return true;
- end
-
- function _M.verify_token(token, appId, appSecret, roomName, disableRoomNameConstraints)
- return _verify_token(token, appId, appSecret, roomName, disableRoomNameConstraints);
- end
-
- function _M.get_room_name(token, appSecret)
- return _get_room_name(token, appSecret);
- end
-
- return _M;
|