diff --git a/plugins/login-resources/src/components/Auth.svelte b/plugins/login-resources/src/components/Auth.svelte
index 568af8cb8c..8755bf9e83 100644
--- a/plugins/login-resources/src/components/Auth.svelte
+++ b/plugins/login-resources/src/components/Auth.svelte
@@ -2,7 +2,7 @@
import { LoginInfo, WorkspaceLoginInfo } from '@hcengineering/login'
import { setMetadata } from '@hcengineering/platform'
import presentation from '@hcengineering/presentation'
- import { setMetadataLocalStorage } from '@hcengineering/ui'
+ import { Loading, setMetadataLocalStorage } from '@hcengineering/ui'
import { onMount } from 'svelte'
import login from '../plugin'
import { afterConfirm, getSessionLoginInfo, navigateToWorkspace } from '../utils'
@@ -26,3 +26,5 @@
return (info as WorkspaceLoginInfo).workspace !== undefined
}
+
+
diff --git a/plugins/login-resources/src/components/LoginForm.svelte b/plugins/login-resources/src/components/LoginForm.svelte
index 84bad6b3cf..60518154ff 100644
--- a/plugins/login-resources/src/components/LoginForm.svelte
+++ b/plugins/login-resources/src/components/LoginForm.svelte
@@ -22,14 +22,14 @@
Loading,
Location,
navigate,
- setMetadataLocalStorage,
- ticker
+ setMetadataLocalStorage
} from '@hcengineering/ui'
import { doLogin, getAccount, getWorkspaces, navigateToWorkspace, selectWorkspace } from '../utils'
import Form from './Form.svelte'
import { LoginInfo } from '@hcengineering/login'
+ import { onMount } from 'svelte'
import { recoveryAction } from '../actions'
import login from '../plugin'
@@ -53,7 +53,7 @@
async function doLoginNavigate (
result: LoginInfo | undefined,
updateStatus: (status: Status) => void
- ): Promise {
+ ): Promise {
if (result !== undefined) {
setMetadata(presentation.metadata.Token, result.token)
setMetadataLocalStorage(login.metadata.LastToken, result.token)
@@ -72,7 +72,7 @@
const [loginStatus, result] = await selectWorkspace(workspace)
updateStatus(loginStatus)
navigateToWorkspace(workspace, result, navigateUrl)
- return true
+ return
}
}
} catch (err: any) {
@@ -86,9 +86,7 @@
loc.query = { ...loc.query, navigateUrl }
}
navigate(loc)
- return true
}
- return false
}
let status = OK
@@ -107,7 +105,7 @@
let loading = true
- async function chooseToken (time: number): Promise {
+ async function chooseToken (): Promise {
if (getMetadata(presentation.metadata.Token) == null) {
const lastToken = fetchMetadataLocalStorage(login.metadata.LastToken)
if (lastToken != null) {
@@ -122,13 +120,16 @@
setMetadataLocalStorage(login.metadata.LastToken, null)
}
}
- loading = false
- } else {
+ if (loading) {
+ loading = false
+ }
+ } else if (loading) {
loading = false
}
+ setTimeout(chooseToken, 1000)
}
- $: chooseToken($ticker)
+ onMount(() => chooseToken())
{#if loading}
diff --git a/server/account/src/index.ts b/server/account/src/index.ts
index 160d43add0..dc90d1308e 100644
--- a/server/account/src/index.ts
+++ b/server/account/src/index.ts
@@ -237,7 +237,7 @@ async function getAccountInfo (db: Db, email: string, password: string): Promise
return toAccountInfo(account)
}
-async function getAccountInfoByToken (db: Db, productId: string, token: string): Promise {
+async function getAccountInfoByToken (db: Db, productId: string, token: string): Promise {
let email: string = ''
try {
email = decodeToken(token)?.email
@@ -248,9 +248,14 @@ async function getAccountInfoByToken (db: Db, productId: string, token: string):
if (account === null) {
throw new PlatformError(new Status(Severity.ERROR, platform.status.AccountNotFound, { account: email }))
}
- const res = toAccountInfo(account)
- res.confirmed = res.confirmed ?? true
- return res
+ const info = toAccountInfo(account)
+ const result = {
+ endpoint: getEndpoint(),
+ email,
+ confirmed: info.confirmed ?? true,
+ token: generateToken(email, getWorkspaceId('', productId), getExtra(info))
+ }
+ return result
}
/**