Merge pull request #361 from standardnotes/fix-auto-signin

Fix auto-signin
This commit is contained in:
Mo Bitar
2020-02-12 09:22:25 -06:00
committed by GitHub

View File

@@ -1,4 +1,3 @@
import _ from 'lodash';
import { SFAuthManager } from 'snjs'; import { SFAuthManager } from 'snjs';
import { getPlatformString } from '@/utils'; import { getPlatformString } from '@/utils';
import template from '%/root.pug'; import template from '%/root.pug';
@@ -53,11 +52,11 @@ class RootCtrl {
this.passcodeManager = passcodeManager; this.passcodeManager = passcodeManager;
this.defineRootScopeFunctions(); this.defineRootScopeFunctions();
this.handleAutoSignInFromParams();
this.initializeStorageManager(); this.initializeStorageManager();
this.addAppStateObserver(); this.addAppStateObserver();
this.addDragDropHandlers();
this.defaultLoad(); this.defaultLoad();
this.handleAutoSignInFromParams();
this.addDragDropHandlers();
} }
defineRootScopeFunctions() { defineRootScopeFunctions() {
@@ -289,45 +288,35 @@ class RootCtrl {
}, false); }, false);
} }
handleAutoSignInFromParams() { async handleAutoSignInFromParams() {
const urlParam = (key) => { const params = this.$location.search();
return this.$location.search()[key]; const server = params.server;
}; const email = params.email;
const password = params.pw;
if (!server || !email || !password) return;
const autoSignInFromParams = async () => { if (this.authManager.offline()) {
const server = urlParam('server'); const { error } = await this.authManager.login(
const email = urlParam('email'); server,
const pw = urlParam('pw'); email,
if(!this.authManager.offline()) { password,
if( false,
await this.syncManager.getServerURL() === server false,
&& this.authManager.user.email === email {}
) { );
/** Already signed in, return */ if (!error) {
// eslint-disable-next-line no-useless-return window.location.reload();
return;
} else {
/** Sign out */
this.authManager.signout(true).then(() => {
window.location.reload();
});
}
} else {
this.authManager.login(
server,
email,
pw,
false,
false,
{}
).then((response) => {
window.location.reload();
});
} }
}; } else if (
this.authManager.user.email === email &&
if(urlParam('server')) { (await this.syncManager.getServerURL()) === server
autoSignInFromParams(); ) {
/** Already signed in, return */
// eslint-disable-next-line no-useless-return
return;
} else {
this.authManager.signout(true);
window.location.reload();
} }
} }
} }