1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-11-07 10:46:24 +03:00

Merge pull request #410 from matrix-org/rav/use_server_device_id

Use server-generated deviceId
This commit is contained in:
David Baker
2016-08-12 11:40:55 +01:00
committed by GitHub
4 changed files with 22 additions and 14 deletions

View File

@@ -134,6 +134,7 @@ function _loginWithToken(queryParams, defaultDeviceDisplayName) {
console.log("Logged in with token");
setLoggedIn({
userId: data.user_id,
deviceId: data.device_id,
accessToken: data.access_token,
homeserverUrl: queryParams.homeserver,
identityServerUrl: queryParams.identityServer,
@@ -164,6 +165,7 @@ function _registerAsGuest(hsUrl, isUrl, defaultDeviceDisplayName) {
console.log("Registered as guest: %s", creds.user_id);
setLoggedIn({
userId: creds.user_id,
deviceId: creds.device_id,
accessToken: creds.access_token,
homeserverUrl: hsUrl,
identityServerUrl: isUrl,
@@ -183,6 +185,7 @@ function _restoreFromLocalStorage() {
const is_url = localStorage.getItem("mx_is_url") || 'https://matrix.org';
const access_token = localStorage.getItem("mx_access_token");
const user_id = localStorage.getItem("mx_user_id");
const device_id = localStorage.getItem("mx_device_id");
let is_guest;
if (localStorage.getItem("mx_is_guest") !== null) {
@@ -196,6 +199,7 @@ function _restoreFromLocalStorage() {
console.log("Restoring session for %s", user_id);
setLoggedIn({
userId: user_id,
deviceId: device_id,
accessToken: access_token,
homeserverUrl: hs_url,
identityServerUrl: is_url,
@@ -223,10 +227,19 @@ export function setLoggedIn(credentials) {
try {
localStorage.setItem("mx_hs_url", credentials.homeserverUrl);
localStorage.setItem("mx_is_url", credentials.identityServerUrl);
localStorage.setItem("mx_user_id", credentials.userId);
localStorage.setItem("mx_access_token", credentials.accessToken);
localStorage.setItem("mx_is_guest", JSON.stringify(credentials.guest));
// if we didn't get a deviceId from the login, leave mx_device_id unset,
// rather than setting it to "undefined".
//
// (in this case MatrixClient doesn't bother with the crypto stuff
// - that's fine for us).
if (credentials.deviceId) {
localStorage.setItem("mx_device_id", credentials.deviceId);
}
console.log("Session persisted for %s", credentials.userId);
} catch (e) {
console.warn("Error using local storage: can't persist session!", e);