Store mx_pass at the same point as access_token

So that we don't overwrite the existing one every time we try to register.
This commit is contained in:
Luke Barnard 2017-05-02 10:07:06 +01:00
parent a887af9f92
commit 4f71f4c331
2 changed files with 11 additions and 7 deletions

View file

@ -303,6 +303,12 @@ export function setLoggedIn(credentials) {
localStorage.setItem("mx_device_id", credentials.deviceId);
}
// The user registered as a PWLU (PassWord-Less User), the generated password
// is cached here such that the user can change it at a later time.
if (credentials.password) {
localStorage.setItem("mx_pass", credentials.password);
}
console.log("Session persisted for %s", credentials.userId);
} catch (e) {
console.warn("Error using local storage: can't persist session!", e);

View file

@ -56,21 +56,18 @@ export default React.createClass({
});
},
_generateAndCachePassword: function() {
const pass = Math.random().toString(36).slice(2);
if (localStorage) {
localStorage.setItem('mx_pass', pass);
}
return pass;
_generatePassword: function() {
return Math.random().toString(36).slice(2);
},
_makeRegisterRequest: function(auth) {
// Not upgrading - changing mxids
const guestAccessToken = null;
this._generatedPassword = this._generatePassword();
return this._matrixClient.register(
this.state.username,
this._generateAndCachePassword(),
this._generatedPassword,
undefined, // session id: included in the auth dict already
auth,
{},
@ -98,6 +95,7 @@ export default React.createClass({
homeserverUrl: this._matrixClient.getHomeserverUrl(),
identityServerUrl: this._matrixClient.getIdentityServerUrl(),
accessToken: response.access_token,
password: this._generatedPassword,
teamToken: teamToken,
});
},