Fix user session error

This commit is contained in:
Cédric FAMIBELLE-PRONZOLA
2022-03-18 08:11:04 +04:00
parent f018c9419c
commit 1f6671e647
2 changed files with 27 additions and 10 deletions
+7 -10
View File
@@ -1,7 +1,7 @@
import {useCallback, useEffect, useState} from 'react' import {useCallback, useEffect, forwardRef, useState} from 'react'
import {styled} from '@mui/material/styles' import {styled} from '@mui/material/styles'
import PropTypes from 'prop-types'
import axios from 'axios' import axios from 'axios'
import {useSession} from 'next-auth/react'
import { import {
Box, Box,
Button, Button,
@@ -56,13 +56,14 @@ const textLabels = {
} }
} }
function Alert(props) { const Alert = forwardRef(function Alert(props, ref) {
return <MuiAlert elevation={6} variant='filled' {...props} /> return <MuiAlert ref={ref} elevation={6} variant='filled' {...props} />
} })
const RemoveTooltip = Tooltip const RemoveTooltip = Tooltip
function EkriTeks({session}) { function EkriTeks() {
const {data: session} = useSession()
const {jwt, user} = session const {jwt, user} = session
const [teksEkri, setTeksEkri] = useState({awtis: '', tit: '', transkripsyon: ''}) const [teksEkri, setTeksEkri] = useState({awtis: '', tit: '', transkripsyon: ''})
const [tradiksyon, setTradiksyon] = useState({fr: '', en: '', es: ''}) const [tradiksyon, setTradiksyon] = useState({fr: '', en: '', es: ''})
@@ -289,8 +290,4 @@ function EkriTeks({session}) {
) )
} }
EkriTeks.propTypes = {
session: PropTypes.object.isRequired
}
export default EkriTeks export default EkriTeks
+20
View File
@@ -32,6 +32,26 @@ const options = {
session: { session: {
strategy: 'jwt' strategy: 'jwt'
}, },
callbacks: {
async jwt({token, user, account}) {
if (user) {
const response = await fetch(
`${process.env.NEXT_PUBLIC_API_URL}/auth/${account.provider}/callback?access_token=${account?.accessToken}`
)
const data = await response.json()
token.id = data.id || user.id
token.jwt = data.jwt || user.jwt
token.user = data.user || user.user
}
return Promise.resolve(token)
},
async session({session, token}) {
session.jwt = token.jwt
session.user = token.user
return Promise.resolve(session)
}
},
pages: { pages: {
signIn: '/soumet', signIn: '/soumet',
error: '/soumet' error: '/soumet'