From 1bd18fbdf1fb1a4ba89e5edf2655dbaddcae4a55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Thu, 3 Feb 2022 01:59:49 +0400 Subject: [PATCH] Adapt with new next-auth version --- components/komante/vwe-komante.js | 4 ++-- components/sesyon/dekoneksyon.js | 2 +- components/sesyon/koneksyon.js | 2 +- components/sesyon/login-provider.js | 2 +- components/teks/teks.js | 4 ++-- pages/_app.js | 9 +++++---- pages/api/auth/[...nextauth].js | 7 ++++--- pages/soumet.js | 4 ++-- 8 files changed, 18 insertions(+), 16 deletions(-) diff --git a/components/komante/vwe-komante.js b/components/komante/vwe-komante.js index 1823efa..d074f4a 100644 --- a/components/komante/vwe-komante.js +++ b/components/komante/vwe-komante.js @@ -1,7 +1,7 @@ import {useState, useEffect, useRef} from 'react' import {styled} from '@mui/material/styles' import PropTypes from 'prop-types' -import {useSession} from 'next-auth/client' +import {useSession} from 'next-auth/react' import { IconButton, @@ -48,7 +48,7 @@ export default function VweKomante({komante, teks}) { const [esOuve, meteEsOuve] = useState(false) const [esKoneksyonOuve, meteEsKoneksyonOuve] = useState(false) const [esKomenteOuve, meteEsKomanteOuve] = useState(false) - const [session] = useSession() + const {data: session} = useSession() const router = useRouter() const handleClick = () => { diff --git a/components/sesyon/dekoneksyon.js b/components/sesyon/dekoneksyon.js index 2612c74..17fefa5 100644 --- a/components/sesyon/dekoneksyon.js +++ b/components/sesyon/dekoneksyon.js @@ -1,7 +1,7 @@ import {useState} from 'react' import {styled} from '@mui/material/styles' import PropTypes from 'prop-types' -import {signOut} from 'next-auth/client' +import {signOut} from 'next-auth/react' import {Tooltip, Fab, Zoom} from '@mui/material' import ExitToAppIcon from '@mui/icons-material/ExitToApp' diff --git a/components/sesyon/koneksyon.js b/components/sesyon/koneksyon.js index 436b095..8626c8f 100644 --- a/components/sesyon/koneksyon.js +++ b/components/sesyon/koneksyon.js @@ -1,5 +1,5 @@ import {useEffect, useState, forwardRef} from 'react' -import {signIn} from 'next-auth/client' +import {signIn} from 'next-auth/react' import {useRouter} from 'next/router' import PropTypes from 'prop-types' import Link from 'next/link' diff --git a/components/sesyon/login-provider.js b/components/sesyon/login-provider.js index 0f4f0f9..efd50a5 100644 --- a/components/sesyon/login-provider.js +++ b/components/sesyon/login-provider.js @@ -1,6 +1,6 @@ import PropTypes from 'prop-types' import Link from 'next/link' -import {signIn} from 'next-auth/client' +import {signIn} from 'next-auth/react' import {Button} from '@mui/material' export default function LoginProvider({id, title, icon, callbackUrl}) { diff --git a/components/teks/teks.js b/components/teks/teks.js index 835ba09..8354375 100644 --- a/components/teks/teks.js +++ b/components/teks/teks.js @@ -12,7 +12,7 @@ import { import {styled} from '@mui/material/styles' import MuiAlert from '@mui/material/Alert' import ExplicitIcon from '@mui/icons-material/Explicit' -import {useSession} from 'next-auth/client' +import {useSession} from 'next-auth/react' import {formatJsonString} from '../../lib/utils/format' @@ -116,7 +116,7 @@ const ExplicitTooltip = Tooltip export default function Teks({anTeks, komante, open, success, error, setSuccess, setError, handleClose}) { const isMobile = useMediaQuery('(max-width:800px)') - const [session] = useSession() + const {data: session} = useSession() const langArray = langToArray(anTeks) return ( diff --git a/pages/_app.js b/pages/_app.js index 928a8d7..a3b60da 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -3,7 +3,7 @@ import {useRouter} from 'next/router' import PropTypes from 'prop-types' import {createTheme, ThemeProvider} from '@mui/material/styles' import CssBaseline from '@mui/material/CssBaseline' -import {Provider, useSession} from 'next-auth/client' +import {SessionProvider, useSession} from 'next-auth/react' import {CacheProvider} from '@emotion/react' import {grey, green, red} from '@mui/material/colors' import NProgress from 'nprogress' @@ -99,21 +99,22 @@ export default function MyApp(props) { - + {Component.auth ? ( ) : ( )} - + ) } function Auth({children}) { - const [session, loading] = useSession() + const {data: session, status} = useSession() + const loading = status === 'loading' const isUser = Boolean(session?.user) const router = useRouter() useEffect(() => { diff --git a/pages/api/auth/[...nextauth].js b/pages/api/auth/[...nextauth].js index f8d99c9..8be5d0c 100644 --- a/pages/api/auth/[...nextauth].js +++ b/pages/api/auth/[...nextauth].js @@ -1,10 +1,10 @@ import NextAuth from 'next-auth' -import Providers from 'next-auth/providers' +import CredentialsProvider from 'next-auth/providers/credentials' import axios from 'axios' const options = { providers: [ - Providers.Credentials({ + CredentialsProvider({ name: 'Credentials', credentials: { username: {label: 'Email', type: 'email', placeholder: 'email@exemple.net'}, @@ -28,8 +28,9 @@ const options = { } }) ], + secret: process.env.NEXT_PUBLIC_JWT_SECRET, session: { - jwt: true + strategy: 'jwt' }, pages: { signIn: '/soumet', diff --git a/pages/soumet.js b/pages/soumet.js index 4571a31..b9b3442 100644 --- a/pages/soumet.js +++ b/pages/soumet.js @@ -1,5 +1,5 @@ import {useState, useEffect} from 'react' -import {useSession} from 'next-auth/client' +import {useSession} from 'next-auth/react' import HeadLayout from '../components/head-layout' import Koneksyon from '../components/sesyon/koneksyon' @@ -9,7 +9,7 @@ import EkriTeks from '../components/soumet/ekri-teks' import {jwennTeksEpiUserId} from '../lib/oki-api' export default function Soumet() { - const [session] = useSession() + const {data: session} = useSession() const [teksEpiUserId, setTeksEpiUserId] = useState([]) useEffect(() => {