diff options
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | src/lib/auth/components/LoginDesktop.jsx | 11 | ||||
| -rw-r--r-- | src/pages/_app.jsx | 8 | ||||
| -rw-r--r-- | src/pages/api/auth/[...nextauth].js | 15 |
4 files changed, 32 insertions, 3 deletions
diff --git a/package.json b/package.json index f74b5a69..cb85bd28 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "lodash-contrib": "^4.1200.1", "midtrans-client": "^1.3.1", "next": "13.0.0", + "next-auth": "^4.22.3", "next-progress": "^2.2.0", "next-pwa": "^5.6.0", "next-seo": "^5.15.0", diff --git a/src/lib/auth/components/LoginDesktop.jsx b/src/lib/auth/components/LoginDesktop.jsx index 8ce2e4e3..74d259a8 100644 --- a/src/lib/auth/components/LoginDesktop.jsx +++ b/src/lib/auth/components/LoginDesktop.jsx @@ -3,11 +3,15 @@ import useLogin from '../hooks/useLogin' import Link from '@/core/components/elements/Link/Link' import PageContent from '@/lib/content/components/PageContent' import Alert from '@/core/components/elements/Alert/Alert' +import {useSession, signIn, SignOut} from 'next-auth/react' const LoginDesktop = () => { const { handleSubmit, handleChangeInput, isLoading, isValid, alert, emailRef, passwordRef } = useLogin() + const {data : session } = useSession + console.log('ini google', session) + return ( <DesktopView> <div className='container mx-auto'> @@ -60,6 +64,13 @@ const LoginDesktop = () => { {!isLoading ? 'Masuk' : 'Loading...'} </button> </form> + <button + type='submit' + className='btn-red w-full mt-2' + onClick={() => signIn()} + > + Masuk dengan google + </button> <div className='text-gray_r-11 mt-10'> Belum punya akun Indoteknik?{' '} diff --git a/src/pages/_app.jsx b/src/pages/_app.jsx index 4c4fed89..cda9e970 100644 --- a/src/pages/_app.jsx +++ b/src/pages/_app.jsx @@ -7,12 +7,14 @@ import { QueryClient, QueryClientProvider } from 'react-query' import useDevice from '@/core/hooks/useDevice' import { useEffect, useState } from 'react' import LogoSpinner from '@/core/components/elements/Spinner/LogoSpinner' +import { SessionProvider } from 'next-auth/react' const queryClient = new QueryClient() -function MyApp({ Component, pageProps }) { +function MyApp({ Component, pageProps :{session, ...pageProps} }) { const router = useRouter() const { isMobile } = useDevice() + console.log('ini session', session) const [animateLoader, setAnimateLoader] = useState(false) @@ -47,7 +49,7 @@ function MyApp({ Component, pageProps }) { }, [isMobile]) return ( - <> + <SessionProvider session={session}> <AnimatePresence> {animateLoader && ( <motion.div @@ -81,7 +83,7 @@ function MyApp({ Component, pageProps }) { {!animateLoader && <Component {...pageProps} key={router.asPath} />} </AnimatePresence> </QueryClientProvider> - </> + </SessionProvider> ) } diff --git a/src/pages/api/auth/[...nextauth].js b/src/pages/api/auth/[...nextauth].js new file mode 100644 index 00000000..f1d6a31f --- /dev/null +++ b/src/pages/api/auth/[...nextauth].js @@ -0,0 +1,15 @@ +import NextAuth from "next-auth/next"; +import GoogleProvider from "next-auth/providers/google" + +export default NextAuth({ + providers:[ + GoogleProvider({ + clientId: process.env.GOOGLE_CLIENT_ID, + clientSecret: process.env.GOOGLE_CLIENT_SECRET, + }), + ], + secret:process.env.JWT_SECRET + // pages:{ + // signIn: '/login', + // } +})
\ No newline at end of file |
