mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-22 16:27:22 +00:00
Fix login infinity requests (#4865)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
parent
189eb27763
commit
a3e3767108
@ -2,7 +2,7 @@
|
|||||||
import { LoginInfo, WorkspaceLoginInfo } from '@hcengineering/login'
|
import { LoginInfo, WorkspaceLoginInfo } from '@hcengineering/login'
|
||||||
import { setMetadata } from '@hcengineering/platform'
|
import { setMetadata } from '@hcengineering/platform'
|
||||||
import presentation from '@hcengineering/presentation'
|
import presentation from '@hcengineering/presentation'
|
||||||
import { setMetadataLocalStorage } from '@hcengineering/ui'
|
import { Loading, setMetadataLocalStorage } from '@hcengineering/ui'
|
||||||
import { onMount } from 'svelte'
|
import { onMount } from 'svelte'
|
||||||
import login from '../plugin'
|
import login from '../plugin'
|
||||||
import { afterConfirm, getSessionLoginInfo, navigateToWorkspace } from '../utils'
|
import { afterConfirm, getSessionLoginInfo, navigateToWorkspace } from '../utils'
|
||||||
@ -26,3 +26,5 @@
|
|||||||
return (info as WorkspaceLoginInfo).workspace !== undefined
|
return (info as WorkspaceLoginInfo).workspace !== undefined
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<Loading />
|
||||||
|
@ -22,14 +22,14 @@
|
|||||||
Loading,
|
Loading,
|
||||||
Location,
|
Location,
|
||||||
navigate,
|
navigate,
|
||||||
setMetadataLocalStorage,
|
setMetadataLocalStorage
|
||||||
ticker
|
|
||||||
} from '@hcengineering/ui'
|
} from '@hcengineering/ui'
|
||||||
|
|
||||||
import { doLogin, getAccount, getWorkspaces, navigateToWorkspace, selectWorkspace } from '../utils'
|
import { doLogin, getAccount, getWorkspaces, navigateToWorkspace, selectWorkspace } from '../utils'
|
||||||
import Form from './Form.svelte'
|
import Form from './Form.svelte'
|
||||||
|
|
||||||
import { LoginInfo } from '@hcengineering/login'
|
import { LoginInfo } from '@hcengineering/login'
|
||||||
|
import { onMount } from 'svelte'
|
||||||
import { recoveryAction } from '../actions'
|
import { recoveryAction } from '../actions'
|
||||||
import login from '../plugin'
|
import login from '../plugin'
|
||||||
|
|
||||||
@ -53,7 +53,7 @@
|
|||||||
async function doLoginNavigate (
|
async function doLoginNavigate (
|
||||||
result: LoginInfo | undefined,
|
result: LoginInfo | undefined,
|
||||||
updateStatus: (status: Status<any>) => void
|
updateStatus: (status: Status<any>) => void
|
||||||
): Promise<boolean> {
|
): Promise<void> {
|
||||||
if (result !== undefined) {
|
if (result !== undefined) {
|
||||||
setMetadata(presentation.metadata.Token, result.token)
|
setMetadata(presentation.metadata.Token, result.token)
|
||||||
setMetadataLocalStorage(login.metadata.LastToken, result.token)
|
setMetadataLocalStorage(login.metadata.LastToken, result.token)
|
||||||
@ -72,7 +72,7 @@
|
|||||||
const [loginStatus, result] = await selectWorkspace(workspace)
|
const [loginStatus, result] = await selectWorkspace(workspace)
|
||||||
updateStatus(loginStatus)
|
updateStatus(loginStatus)
|
||||||
navigateToWorkspace(workspace, result, navigateUrl)
|
navigateToWorkspace(workspace, result, navigateUrl)
|
||||||
return true
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
@ -86,9 +86,7 @@
|
|||||||
loc.query = { ...loc.query, navigateUrl }
|
loc.query = { ...loc.query, navigateUrl }
|
||||||
}
|
}
|
||||||
navigate(loc)
|
navigate(loc)
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let status = OK
|
let status = OK
|
||||||
@ -107,7 +105,7 @@
|
|||||||
|
|
||||||
let loading = true
|
let loading = true
|
||||||
|
|
||||||
async function chooseToken (time: number): Promise<void> {
|
async function chooseToken (): Promise<void> {
|
||||||
if (getMetadata(presentation.metadata.Token) == null) {
|
if (getMetadata(presentation.metadata.Token) == null) {
|
||||||
const lastToken = fetchMetadataLocalStorage(login.metadata.LastToken)
|
const lastToken = fetchMetadataLocalStorage(login.metadata.LastToken)
|
||||||
if (lastToken != null) {
|
if (lastToken != null) {
|
||||||
@ -122,13 +120,16 @@
|
|||||||
setMetadataLocalStorage(login.metadata.LastToken, null)
|
setMetadataLocalStorage(login.metadata.LastToken, null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
loading = false
|
if (loading) {
|
||||||
} else {
|
loading = false
|
||||||
|
}
|
||||||
|
} else if (loading) {
|
||||||
loading = false
|
loading = false
|
||||||
}
|
}
|
||||||
|
setTimeout(chooseToken, 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
$: chooseToken($ticker)
|
onMount(() => chooseToken())
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if loading}
|
{#if loading}
|
||||||
|
@ -237,7 +237,7 @@ async function getAccountInfo (db: Db, email: string, password: string): Promise
|
|||||||
return toAccountInfo(account)
|
return toAccountInfo(account)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getAccountInfoByToken (db: Db, productId: string, token: string): Promise<AccountInfo> {
|
async function getAccountInfoByToken (db: Db, productId: string, token: string): Promise<LoginInfo> {
|
||||||
let email: string = ''
|
let email: string = ''
|
||||||
try {
|
try {
|
||||||
email = decodeToken(token)?.email
|
email = decodeToken(token)?.email
|
||||||
@ -248,9 +248,14 @@ async function getAccountInfoByToken (db: Db, productId: string, token: string):
|
|||||||
if (account === null) {
|
if (account === null) {
|
||||||
throw new PlatformError(new Status(Severity.ERROR, platform.status.AccountNotFound, { account: email }))
|
throw new PlatformError(new Status(Severity.ERROR, platform.status.AccountNotFound, { account: email }))
|
||||||
}
|
}
|
||||||
const res = toAccountInfo(account)
|
const info = toAccountInfo(account)
|
||||||
res.confirmed = res.confirmed ?? true
|
const result = {
|
||||||
return res
|
endpoint: getEndpoint(),
|
||||||
|
email,
|
||||||
|
confirmed: info.confirmed ?? true,
|
||||||
|
token: generateToken(email, getWorkspaceId('', productId), getExtra(info))
|
||||||
|
}
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user