【发布时间】:2022-09-30 21:18:59
【问题描述】:
我们正在我们的网站上进行 OTP 身份验证。因此,为了获得授权,访问者在输入中输入他的电话号码,我们向他发送一个 OPT 号码,他再次输入发送的选项,然后如果匹配,我们向他发送他的帐户凭据(令牌,用户 ID)(如果存在)或者我们创建新的,我们希望使用 next-auth 在会话中保存该凭据。
这是我到目前为止的地方:
export default NextAuth({
providers: [
CredentialsProvider({
credentials: {
phoneNumber: { label: \'PhoneNumber\', type: \'text\' },
code: { label: \'Code\', type: \'text\' },
type: { label: \'Type\', type: \'text\' },
},
async authorize(credentials, req) {
const user_needs = await requests.auth.signInEnterOtp(
credentials.phoneNumber,
credentials.code,
credentials.type
)
return user_needs.ok ? true : null
},
}),
],
callbacks: {
async session({ session, user, token }) {
return session
},
},
secret: process.env.JWT_SECRET,
})
我需要在会话中保存user_needs,但我怎样才能将它通过authorize 传递给session?
我尝试在authorize 中返回user_need,但它没有传递给session 回调。
-
您可以从
authorize返回一个用户对象,该对象将传递给jwt和session回调。 -
我试过了,但在
session回调中一无所获,你能告诉我代码作为答案吗?