Reputation: 560
Helle, I'm trying to add a google authentication on my Next.js project. I've got my GOOGLE_ID & GOOGLE_SECRET from google console.
And I've got theses errors on my console :
I've followed tutorials and here's my configuration :
_app.tsx :
const App = function ({ Component, pageProps }: AppProps) {
return (
<RecoilRoot>
<Provider session={pageProps.session}>
<ThemeProvider theme={theme}>
<Component {...pageProps} />
</ThemeProvider>
</Provider>
</RecoilRoot>
);
};
src/pages/my-page.tsx :
const MyPage: FC<MyPageProps> = function (){
const [session] = useSession();
if(!session){
return <a onClick={() => signIn("Google", { callbackUrl: "/monitoring-docker" })});
}
}
src/pages/api/[...nextauth].ts :
const { serverRuntimeConfig } = getConfig();
export default NextAuth({
providers: [
Providers.Google({
clientId: serverRuntimeConfig.GOOGLE_ID,
clientSecret: serverRuntimeConfig.GOOGLE_SECRET,
}),
],
});
Thank you for your help, I've been stuck on it for several hours... !
Upvotes: 0
Views: 7880
Reputation: 353
Add a secret option in your NextAuth function. It could be any random secret string.
export default NextAuth({
// Configure one or more authentication providers
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
}),
// ...add more providers here
],
secret: process.env.SECRET,
pages: {
signIn: "/auth/signin",
},
callbacks: {
async session({ session, token, user }) {
session.user.username = session.user.name
.split(" ")
.join("-")
.toLocaleLowerCase();
session.user.uid = token.sub;
return session;
},
},
});
Upvotes: 0
Reputation: 560
I've read the documentation one more time, and I forgot the auth folder under api...
Upvotes: 2