使用NextAuth实现NextJS短信验证码授权遇问题求助
Next.js 验证码授权功能实现问题
我需要在Next.js中实现授权功能,流程为:将发送至手机号的验证码通过Next.js发送给后端API,从API获取用户数据、access token和refresh token。我使用了next-auth库,但在实现过程中遇到问题。
相关代码
[...nextauth].js
import { AuthOptions } from "next-auth"; import NextAuth from "next-auth/next"; import CredentialsProvider from "next-auth/providers/credentials"; import axios from "../../lib/axios"; export const authOptions: AuthOptions = { providers: [ CredentialsProvider({ name: "Credentials", credentials: { code: { label: "code", type: "text", placeholder: "code", }, }, async authorize(credentials, req){ const res = await axios({ method: "post", url: "/reg/verify", data: { code: credentials?.code } }) const user = res.data if(user){ return user } else { return null } } }), ], callbacks: { async session({session, token}){ session.user == token; return session }, async jwt({token, user}){ if(user){ token = {... token, ...user} } return token } } }; export default NextAuth(authOptions)
登录函数
const { data: session, status } = useSession() const onSubmit: SubmitHandler<Inputs> = async (data) => { const result = await signIn("Credentials", { code: data.code, redirect: true, callbackUrl: 'http://localhost:3000/app' }) }
(附错误截图说明)
我的文件结构如下:
内容的提问来源于stack exchange,提问作者Ravshan
相关产品推荐
相关产品推荐

