我有一个Next应用程序,让用户使用他们的discord帐户进行注册。注册部分正在工作。现在我想知道,如果用户已经注册,我如何让他们使用discord帐户登录,而不需要再次进行授权。
在/pages/api/auth/[…nexttauth].ts文件中
export default (req: NextApiRequest, res: NextApiResponse<any>) => {
if (req.query.firstName && req.query.lastName) {
firstName = req.query.firstName;
lastName = req.query.lastName;
}
return NextAuth(req, res, {
providers: [
DiscordProvider({
clientId: process.env.DISCORD_CLIENT_ID,
clientSecret: process.env.DISCORD_CLIENT_SECRET,
authorization: { params: { scope: DISCORD_SCOPES } },
}),
],
session: { strategy: "jwt" },
callbacks: {
async session({ session, token, user }) {
session.jwt = token.jwt;
session.id = token.id;
return session;
},
async jwt({ token, user, account }) {
}
}
});
}
使用以上逻辑,我将在注册后将用户数据保存到strapi。
如何让用户在没有获得新的访问令牌和通过授权的情况下不和谐地登录
如果用户已经授权您的应用程序登录。您可以在前端客户端中使用以下内容。
import { signIn } from "next-auth/react";
signIn("discord", { callbackUrl: '', redirect: true }, { prompt: "none" });
参考文献:
https://next-auth.js.org/getting-started/client#additional-参数