add wtv-ticket store api
- fix broken session bust crap from before - properly resume session as user when server restarted - api available to store other things in the wtv-ticket
This commit is contained in:
@@ -71,9 +71,8 @@ minisrv-no-mail-count: true
|
||||
Content-Type: text/html`;
|
||||
if (client_challenge_response) {
|
||||
headers += `
|
||||
wtv-encrypted: true
|
||||
wtv-ticket: ${wtvsec_login.ticket_b64}
|
||||
`;
|
||||
wtv-encrypted: true`;
|
||||
if (wtvsec_login) ssid_sessions[socket.ssid].data_store.wtvsec_login.update_ticket = true;
|
||||
}
|
||||
if (limitedLoginRegistered) gourl = "wtv-head-waiter:/password?";
|
||||
headers += `
|
||||
|
||||
@@ -39,14 +39,28 @@ else {
|
||||
} else {
|
||||
var userid = ssid_sessions[socket.ssid].getSessionData("subscriber_userid")
|
||||
var nickname = ssid_sessions[socket.ssid].getSessionData("subscriber_username");
|
||||
var human_name = ssid_sessions[socket.ssid].getSessionData("subscriber_name");
|
||||
var human_name = ssid_sessions[socket.ssid].getSessionData("subscriber_name") || nickname;
|
||||
var messenger_enabled = ssid_sessions[socket.ssid].getSessionData("messenger_enabled") || 0;
|
||||
var messenger_authorized = ssid_sessions[socket.ssid].getSessionData("messenger_authorized") || 0;
|
||||
var home_url = "wtv-home:/splash?";
|
||||
}
|
||||
var limitedLogin = ssid_sessions[socket.ssid].lockdown;
|
||||
var limitedLoginRegistered = (limitedLogin || (ssid_sessions[socket.ssid].isRegistered() && ssid_sessions[socket.ssid].getSessionData('password_valid')));
|
||||
var offline_user_list = CryptoJS.enc.Latin1.parse("<user-list>\n\t<user userid=\"" + userid + " user-name=\"" + nickname + "\" first-name=\"" + minisrv_config.config.service_name + "User \" last-name=\\" + namerand + "\" password=\"\" mail-enabled=\"true\" />\n</user-list>").toString(CryptoJS.enc.Base64);
|
||||
var offline_user_list = null;
|
||||
if (ssid_sessions[socket.ssid].isRegistered() && ssid_sessions[socket.ssid].user_id == 0) {
|
||||
var accounts = ssid_sessions[socket.ssid].listPrimaryAccountUsers();
|
||||
console.log(accounts);
|
||||
var num_accounts = ssid_sessions[socket.ssid].getNumberOfUserAccounts();
|
||||
var offline_user_list_str = "<user-list>\n";
|
||||
var i = 0;
|
||||
Object.keys(accounts).forEach((k) => {
|
||||
var account_display_name = (accounts[k].subscriber_name) ? accounts[k].subscriber_name : accounts[k].subscriber_username
|
||||
offline_user_list_str += "\t" + '<user userid="' + i + '" user-name="' + accounts[k].subscriber_username + '" first-name="' + account_display_name + '" last-name="" passsword="" mail-enabled=true />' + "\n";
|
||||
i++;
|
||||
});
|
||||
offline_user_list_str += "</user-list>\n";
|
||||
offline_user_list = CryptoJS.enc.Latin1.parse(offline_user_list_str).toString(CryptoJS.enc.Base64);
|
||||
}
|
||||
|
||||
if (limitedLoginRegistered) var home_url = "wtv-head-waiter:/password?";
|
||||
|
||||
@@ -74,8 +88,8 @@ wtv-login-timeout: 7200
|
||||
if (!limitedLogin) {
|
||||
|
||||
headers += getServiceString('all', { "exceptions": ["wtv-register"] });
|
||||
headers += `wtv-offline-user-list: ${offline_user_list}
|
||||
wtv-messenger-authorized: ${messenger_authorized}
|
||||
if (offline_user_list) headers += "wtv-offline-user-list: " + offline_user_list + "\n";
|
||||
headers += `wtv-messenger-authorized: ${messenger_authorized}
|
||||
wtv-messenger-enable: ${messenger_enabled}
|
||||
wtv-messagewatch-checktimeoffset: off
|
||||
`;
|
||||
|
||||
@@ -17,7 +17,7 @@ if (!request_headers.query.registering ||
|
||||
ssid_sessions[socket.ssid].setSessionData("subscriber_username", request_headers.query.subscriber_username);
|
||||
ssid_sessions[socket.ssid].setSessionData("subscriber_contact", request_headers.query.subscriber_contact);
|
||||
ssid_sessions[socket.ssid].setSessionData("subscriber_contact_method", request_headers.query.subscriber_contact_method);
|
||||
ssid_sessions[socket.ssid].setSessionData("subscriber_userid", '1' + Math.floor(Math.random() * 1000000000000000000));
|
||||
ssid_sessions[socket.ssid].setSessionData("subscriber_userid", 0);
|
||||
ssid_sessions[socket.ssid].setSessionData("registered", true);
|
||||
if (!ssid_sessions[socket.ssid].storeSessionData(true)) {
|
||||
var errpage = wtvshared.doErrorPage(400);
|
||||
|
||||
@@ -30,6 +30,7 @@ if (errpage) {
|
||||
var freeUserId = ssid_sessions[socket.ssid].findFreeUserSlot(ssid_sessions[socket.ssid]);
|
||||
if (freeUserId) {
|
||||
userSession.user_id = freeUserId;
|
||||
userSession.setSessionData("subscriber_userid", freeUserId);
|
||||
userSession.setSessionData("subscriber_name", request_headers.query.display_name);
|
||||
userSession.setSessionData("subscriber_username", request_headers.query.user_name);
|
||||
userSession.setSessionData("registered", true);
|
||||
|
||||
Reference in New Issue
Block a user