mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-16 19:57:52 +01:00
core: fix login gets stuck on error
This commit is contained in:
@@ -129,39 +129,43 @@ class UserManager {
|
|||||||
) {
|
) {
|
||||||
if (!email || !password) throw new Error("email & password are required.");
|
if (!email || !password) throw new Error("email & password are required.");
|
||||||
|
|
||||||
const token = await this.tokenManager.getAccessToken();
|
const token = await this.tokenManager.getToken();
|
||||||
if (!token) throw new Error("Unauthorized.");
|
if (!token) throw new Error("No token found.");
|
||||||
|
|
||||||
email = email.toLowerCase();
|
email = email.toLowerCase();
|
||||||
if (!hashedPassword) {
|
if (!hashedPassword) {
|
||||||
hashedPassword = await this._storage.hash(password, email);
|
hashedPassword = await this._storage.hash(password, email);
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
await this.tokenManager.saveToken(
|
||||||
|
await http.post(
|
||||||
|
`${constants.AUTH_HOST}${ENDPOINTS.token}`,
|
||||||
|
{
|
||||||
|
grant_type: "mfa_password",
|
||||||
|
client_id: "notesnook",
|
||||||
|
scope: "notesnook.sync offline_access IdentityServerApi",
|
||||||
|
password: hashedPassword
|
||||||
|
},
|
||||||
|
token.access_token
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
await this.tokenManager.saveToken(
|
const user = await this.fetchUser();
|
||||||
await http.post(
|
if (!user) throw new Error("Unauthorized.");
|
||||||
`${constants.AUTH_HOST}${ENDPOINTS.token}`,
|
|
||||||
{
|
|
||||||
grant_type: "mfa_password",
|
|
||||||
client_id: "notesnook",
|
|
||||||
scope: "notesnook.sync offline_access IdentityServerApi",
|
|
||||||
password: hashedPassword
|
|
||||||
},
|
|
||||||
token
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
const user = await this.fetchUser();
|
if (!sessionExpired) {
|
||||||
if (!user) throw new Error("Unauthorized.");
|
await this._storage.write("lastSynced", 0);
|
||||||
|
}
|
||||||
|
|
||||||
await this._storage.deriveCryptoKey(`_uk_@${user.email}`, {
|
await this._storage.deriveCryptoKey(`_uk_@${user.email}`, {
|
||||||
password,
|
password,
|
||||||
salt: user.salt
|
salt: user.salt
|
||||||
});
|
});
|
||||||
if (!sessionExpired) {
|
EV.publish(EVENTS.userLoggedIn, user);
|
||||||
await this._storage.write("lastSynced", 0);
|
} catch (e) {
|
||||||
|
await this.tokenManager.saveToken(token);
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
EV.publish(EVENTS.userLoggedIn, user);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user