Tyl*_*Kim 5 firebase next-auth
我目前正在为我的应用程序使用 NextAuth + Firebase 身份验证。下面的代码完美地处理身份验证和用户会话,但我注意到它实际上并没有创建 Firebase 身份验证下列出的用户;这意味着我无法跟踪 firebase 的本机构建的 DAU 和其他指标。
我已经查看了此文档,但我不太确定这如何具体适用于 nextAuth。如果有人分享他们的经验,将不胜感激!
LoginButton.tsx:
import { useSession, signIn, signOut } from 'next-auth/react';
const ScraftIcon = () => {
const { data: session } = useSession();
return (
<Tooltip title="Log In">
<button
onClick={() => signIn('google')}
>
<MdLogin size="30" />
</button>
</Tooltip>
);
};
export default ScraftIcon;
Run Code Online (Sandbox Code Playgroud)
[...nextauth].ts:
import NextAuth from "next-auth";
import GoogleProvider from "next-auth/providers/google";
import { FirestoreAdapter } from "@next-auth/firebase-adapter";
import { cert } from "firebase-admin/app";
import "firebase/firestore";
export const authOptions = {
// Configure one or more authentication providers
providers: [
GoogleProvider({
clientId: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,
clientSecret: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_SECRET!,
}),
// ...add more providers here
],
adapter: FirestoreAdapter({
credential: cert({
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
clientEmail: process.env.NEXT_PUBLIC_FIREBASE_CLIENT_EMAIL,
privateKey: process.env.NEXT_PUBLIC_FIREBASE_PRIVATE_KEY,
}),
}),
};
export default NextAuth(authOptions);
Run Code Online (Sandbox Code Playgroud)
小智 0
我遇到了类似的问题,所以浏览网络让我在 GitHub 上找到了这个讨论。我认为这里提供的答案可以解决您的问题:https://github.com/nextauthjs/next-auth/discussions/7157
按照此方法,您需要生成自定义令牌,将其添加到会话中,然后在客户端从会话中检索令牌并使用它登录 Firebase。
| 归档时间: |
|
| 查看次数: |
682 次 |
| 最近记录: |