小编dhe*_*jpv的帖子

NextAuth.js - 向会话添加额外的属性

我正在尝试使用“identify”和“guilds”范围对 Discord 用户进行身份验证。似乎可以token.profile使用以下代码将 Discord 提供的用户信息添加到令牌中(注意我也在那里包含了 guilds 数组):

async jwt(token, user, account, profile, isNewUser) {
    if (profile) token.profile = profile;
    if (account?.accessToken) token.accessToken = account.accessToken;

    const data = await (
        await fetch("https://discord.com/api/v8/users/@me/guilds", {
            method: "GET",
            headers: {
                Authorization: `Bearer ${account?.accessToken}`,
            },
        })
    ).json();

    // @ts-ignore
    token.profile.guilds = data;

    return token;
},
Run Code Online (Sandbox Code Playgroud)

但是,一旦我添加将对象session添加profile到会话中的功能,null即使登录后,会话也会一直持续,并且 Discord 的登录屏幕会提示我输入用户名和密码,而不是自动让我进入。

// @ts-ignore
async session(session, token) {
    console.log("token", token);
    console.log("session", session);

    // @ts-ignore
    session.profile = token.profile;

    return session;
},
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我必须 …

authentication typescript discord next-auth

5
推荐指数
0
解决办法
1672
查看次数

标签 统计

authentication ×1

discord ×1

next-auth ×1

typescript ×1