首页 > 解决方案 > 将 FB/Google 用户从 NextAuth 存储并验证到 Nextjs 中的另一个后端 api

问题描述

我将 Next.js(v.10.0.4) 和 NextAuth(v.3.23.3) 用于需要社交身份验证的项目。我可以通过自定义登录页面登录/注销,包括 NextAuth 提供的基于会话的社交身份验证系统。

现在我想将用户的信息存储在外部 API 中,稍后我想通过 JWT 获取用户的数据。

我不确定我应该如何处理这个问题。任何建议/示例/解决方案的想法都将受到高度赞赏。谢谢 :)

api/[...nextauth].js]

import NextAuth from 'next-auth'
import Providers from 'next-auth/providers'
import axios from 'axiosConfig'

const options = {
  providers: [
    Providers.Facebook({
      clientId: process.env.FACEBOOK_ID,
      clientSecret: process.env.FACEBOOK_SECRET,
    }),
    Providers.Google({
      clientId: process.env.GOOGLE_ID,
      clientSecret: process.env.GOOGLE_SECRET,
    }),
  ],
  pages: {
    signIn: '/',
    signOut: '/',
    error: '/auth/error', // Error code passed in query string as ?error=
    verifyRequest: '/auth/verify-request', // (used for check email message)
    newUser: null, // If set, new users will be directed here on first sign in
  },
  session: {
    jwt: true,
  },
  callbacks: {
    session: async (session, user) => {
      session.jwt = user.jwt
      session.id = user.id
      return Promise.resolve(session)
    },
    jwt: async (token, user, account) => {
      const isSignIn = user ? true : false
      if (isSignIn) {
        // 
      }
      return Promise.resolve(token)
    },
  },
}

export default (req, res) => NextAuth(req, res, options)

标签: reactjsauthenticationjwtnext.jsnext-auth

解决方案


推荐阅读