session-modal-fix

This commit is contained in:
Untone 2024-02-23 10:38:11 +03:00
parent b30ae915bb
commit a85a493022

View File

@ -92,10 +92,11 @@ export const SessionProvider = (props: {
const authorizer = createMemo(() => new Authorizer(config())) const authorizer = createMemo(() => new Authorizer(config()))
const [oauthState, setOauthState] = createSignal<string>() const [oauthState, setOauthState] = createSignal<string>()
// handle callback's redirect_uri // handle auth state callback
createEffect(() => { createEffect(
// oauth on(
const state = searchParams()?.state () => searchParams()?.state,
(state) => {
if (state) { if (state) {
setOauthState((_s) => state) setOauthState((_s) => state)
const scope = searchParams()?.scope const scope = searchParams()?.scope
@ -104,18 +105,21 @@ export const SessionProvider = (props: {
if (scope) console.info(`[context.session] scope: ${scope}`) if (scope) console.info(`[context.session] scope: ${scope}`)
const url = searchParams()?.redirect_uri || searchParams()?.redirectURL || window.location.href const url = searchParams()?.redirect_uri || searchParams()?.redirectURL || window.location.href
setConfig((c: ConfigType) => ({ ...c, redirectURL: url.split('?')[0] })) setConfig((c: ConfigType) => ({ ...c, redirectURL: url.split('?')[0] }))
changeSearchParams({ mode: 'confirm-email', modal: 'auth' }, true) changeSearchParams({ mode: 'confirm-email', m: 'auth' }, true)
} }
}) },
{ defer: true }
)
)
// handle email confirm // handle token confirm
createEffect(() => { createEffect(() => {
const token = searchParams()?.token const token = searchParams()?.token
const access_token = searchParams()?.access_token const access_token = searchParams()?.access_token
if (access_token) if (access_token)
changeSearchParams({ changeSearchParams({
mode: 'confirm-email', mode: 'confirm-email',
modal: 'auth', m: 'auth',
access_token, access_token,
}) })
else if (token) changeSearchParams({ mode: 'change-password', modal: 'auth', token }) else if (token) changeSearchParams({ mode: 'change-password', modal: 'auth', token })