auth-refresh-fix
Some checks failed
deploy / test (push) Failing after 56s
deploy / deploy (push) Has been skipped

This commit is contained in:
Untone 2023-12-25 00:29:25 +03:00
parent fce3d9cf21
commit 6b87cc9a34
4 changed files with 17 additions and 15 deletions

View File

@ -56,7 +56,7 @@ export const NotificationsProvider = (props: { children: JSX.Element }) => {
setTotalNotificationsCount(total)
setUnreadNotificationsCount(unread)
setNotificationEntities(newGroupsEntries)
console.debug(`[context.notifications] groups updated`)
console.debug(`[context.notifications] groups updated`, groups)
return groups
} else {
return []

View File

@ -17,6 +17,7 @@ import {
createResource,
createSignal,
on,
onCleanup,
onMount,
useContext,
} from 'solid-js'
@ -105,6 +106,7 @@ export const SessionProvider = (props: {
})
// load
let ta
const [configuration, setConfig] = createSignal<ConfigType>(defaultConfig)
const authorizer = createMemo(() => new Authorizer(defaultConfig))
const [isSessionLoaded, setIsSessionLoaded] = createSignal(false)
@ -112,8 +114,11 @@ export const SessionProvider = (props: {
const [session, { refetch: loadSession, mutate: setSession }] = createResource<AuthToken>(
async () => {
try {
console.info('[context.session] loading session')
return await authorizer().getSession()
const s = await authorizer().getSession()
console.info('[context.session] loading session', s)
ta = setTimeout(loadSession, s.expires_in * 1000)
console.info(`[context.session] will refresh in ${s.expires_in / 60} mins`)
return s
} catch (e) {
console.info('[context.session] cannot refresh session', e)
setAuthError(e)
@ -126,6 +131,10 @@ export const SessionProvider = (props: {
},
)
onCleanup(() => {
clearTimeout(ta)
})
const [author, { refetch: loadAuthor, mutate: setAuthor }] = createResource<Author | null>(
async () => {
const u = session()?.user
@ -148,7 +157,7 @@ export const SessionProvider = (props: {
if (session()) {
const token = session()?.access_token
if (token) {
console.log('[context.session] token observer got token', token)
// console.log('[context.session] token observer got token', token)
if (!inboxClient.private) {
apiClient.connect(token)
notifierClient.connect(token)

View File

@ -1,9 +0,0 @@
{
"query": "query ValidateToken($params: ValidateJWTTokenInput!) { validate_jwt_token(params: $params) { is_valid claims } }",
"variables": {
"params": {
"token_type": "access_token",
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhbGxvd2VkX3JvbGVzIjpbInJlYWRlciJdLCJhdWQiOiI5YzExMzM3Ny01ZWVhLTRjODktOThlMS02OTMwMjQ2MmZjMDgiLCJleHAiOjE3MDI1MDM3NDksImlhdCI6MTcwMjUwMTk0OSwiaXNzIjoiaHR0cHM6Ly9hdXRoLmRpc2NvdXJzLmlvIiwibG9naW5fbWV0aG9kIjoiYmFzaWNfYXV0aCIsIm5vbmNlIjoiNTNhZmE1NzMtMWZhMC00NDNhLTk4NzktNWE0ZDk3YTQ1OWEzIiwicm9sZXMiOlsicmVhZGVyIl0sInNjb3BlIjpbIm9wZW5pZCIsImVtYWlsIiwicHJvZmlsZSJdLCJzdWIiOiIyNDU3NTc5Yi0yNTk3LTQzNjMtOGU1MC00YWM5ZjY5YzgyMWQiLCJ0b2tlbl90eXBlIjoiYWNjZXNzX3Rva2VuIn0.ImAmAFXkwReYhLvLR1GG3g0mDllQaj7NVWw5q9D7EFUHtpjuNOanlVfzoaqqB6CXkc_uSRlrfiaLkbfCzhbXAWpi49vOI9P2fvLv-41Y0p8FJZnruZDi1c8psyPU5gpCLp3nqtBTTIR2IP-Uu_1oYo2Hl02xdOFjVHw19f-WEf73L6APBPppNeE21IJJy8aU5uXBHv12Y--kH5tEzn83BNBKPm5yWay-k4DVuBnAJt_ODENqm5NAaiG-q2eG3GnXWpjgpDXf0cxVXdtJbvFcPIv-pH7Dm6ae8m4xM7MmVmpzCE5f-Qc1lwcfX51Cr6IMXUjHx0N3n54sKk91CPa_ug"
}
}
}

View File

@ -5,6 +5,7 @@ import { createMemo, createSignal } from 'solid-js'
import { apiClient } from '../../graphql/client/core'
import { byTopicStatDesc } from '../../utils/sortby'
import { useRouter } from '../router'
export type TopicsSortBy = 'followers' | 'title' | 'authors' | 'shouts'
@ -17,7 +18,7 @@ const [randomTopics, setRandomTopics] = createSignal<Topic[]>([])
const sortedTopics = createLazyMemo<Topic[]>(() => {
const topics = Object.values(topicEntities())
const { changeSearchParams } = useRouter()
switch (sortAllBy()) {
case 'followers': {
// console.debug('[store.topics] sorted by followers')
@ -40,7 +41,8 @@ const sortedTopics = createLazyMemo<Topic[]>(() => {
break
}
default: {
console.error(`Unknown sort: ${sortAllBy()}`)
topics.sort(byTopicStatDesc('shouts'))
changeSearchParams({ by: 'shouts' })
}
}