fix: fix next-auth issues

This commit is contained in:
mihaic195 2021-08-09 13:35:06 +03:00
parent fa5d63a027
commit aa8f11d72c
No known key found for this signature in database
GPG key ID: 18E6B791693DB416
3 changed files with 37 additions and 7 deletions

View file

@ -1,10 +1,10 @@
import Head from "next/head"; import Head from "next/head";
import Link from "next/link"; import Link from "next/link";
import React from "react"; import React from "react";
import { getCsrfToken } from "next-auth/client"; import { getCsrfToken, getSession } from "next-auth/client";
import debounce from "lodash.debounce"; import debounce from "lodash.debounce";
export default function Page({ csrfToken }) { export default function ForgotPassword({ csrfToken }) {
const [loading, setLoading] = React.useState(false); const [loading, setLoading] = React.useState(false);
const [error, setError] = React.useState(null); const [error, setError] = React.useState(null);
const [success, setSuccess] = React.useState(false); const [success, setSuccess] = React.useState(false);
@ -156,8 +156,17 @@ export default function Page({ csrfToken }) {
); );
} }
Page.getInitialProps = async ({ req }) => { ForgotPassword.getInitialProps = async (context) => {
const { req, res } = context;
const session = await getSession({ req });
if (session) {
res.writeHead(302, { Location: "/" });
res.end();
return;
}
return { return {
csrfToken: await getCsrfToken({ req }), csrfToken: await getCsrfToken(context),
}; };
}; };

View file

@ -1,6 +1,6 @@
import Head from "next/head"; import Head from "next/head";
import Link from "next/link"; import Link from "next/link";
import { getCsrfToken } from "next-auth/client"; import { getCsrfToken, getSession } from "next-auth/client";
export default function Login({ csrfToken }) { export default function Login({ csrfToken }) {
return ( return (
@ -79,8 +79,17 @@ export default function Login({ csrfToken }) {
); );
} }
Login.getInitialProps = async ({ req }) => { Login.getInitialProps = async (context) => {
const { req, res } = context;
const session = await getSession({ req });
if (session) {
res.writeHead(302, { Location: "/" });
res.end();
return;
}
return { return {
csrfToken: await getCsrfToken({ req }), csrfToken: await getCsrfToken(context),
}; };
}; };

View file

@ -1,6 +1,7 @@
import Head from "next/head"; import Head from "next/head";
import Link from "next/link"; import Link from "next/link";
import { CheckIcon } from "@heroicons/react/outline"; import { CheckIcon } from "@heroicons/react/outline";
import { getSession, signOut } from "next-auth/client";
export default function Logout() { export default function Logout() {
return ( return (
@ -43,3 +44,14 @@ export default function Logout() {
</div> </div>
); );
} }
Logout.getInitialProps = async (context) => {
const { req } = context;
const session = await getSession({ req });
if (session) {
signOut({ redirect: false });
}
return { session: undefined };
};