Allow registering and logging in as guest

This commit is contained in:
Richard Lewis 2021-06-04 20:53:37 +01:00
parent 711b5be07f
commit b274607f41
2 changed files with 13 additions and 2 deletions

View file

@ -97,7 +97,7 @@ export class SessionContainer {
}); });
} }
async startWithLogin(homeServer, username, password) { async startWithLogin(homeServer, username, password, guest = false) {
if (this._status.get() !== LoadStatus.NotLoading) { if (this._status.get() !== LoadStatus.NotLoading) {
return; return;
} }
@ -109,7 +109,12 @@ export class SessionContainer {
try { try {
const request = this._platform.request; const request = this._platform.request;
const hsApi = new HomeServerApi({homeServer, request}); const hsApi = new HomeServerApi({homeServer, request});
const loginData = await hsApi.passwordLogin(username, password, "Hydrogen", {log}).response(); let loginData;
if (guest === true) {
loginData = await hsApi.guestLogin("Hydrogen", {log}).response();
} else {
loginData = await hsApi.passwordLogin(username, password, "Hydrogen", {log}).response();
}
const sessionId = this.createNewSessionId(); const sessionId = this.createNewSessionId();
sessionInfo = { sessionInfo = {
id: sessionId, id: sessionId,

View file

@ -142,6 +142,12 @@ export class HomeServerApi {
}, options); }, options);
} }
guestLogin(initialDeviceDisplayName, options = null) {
return this._unauthedRequest("POST", this._url(`/register`), {kind: 'guest'}, {
"initial_device_display_name": initialDeviceDisplayName
}, options);
}
createFilter(userId, filter, options = null) { createFilter(userId, filter, options = null) {
return this._post(`/user/${encodeURIComponent(userId)}/filter`, null, filter, options); return this._post(`/user/${encodeURIComponent(userId)}/filter`, null, filter, options);
} }