所以next-auth目前的默认行为是只使用用户创建账户时的图像,我希望它能改变,这样如果用户改变了该提供商的图像,这个改变应该反映在网站上。
我发现的唯一一个类似问题是:https://github.com/nextauthjs/next-auth/discussions/1414
同样的方法也适用于这种情况,但是我无法访问我感兴趣的字段。signIn
的签名为:signIn({ user, account, profile, email, credentials })
如果我console.log(profile)
我得到如下:
{
id: '218748538039828480',
username: 'someUser',
display_name: null,
avatar: 'aa9f10fb12bb0f1ab225f78de5f06104',
avatar_decoration: null,
discriminator: '2043',
public_flags: 256,
flags: 256,
banner: null,
banner_color: '#6667ab',
accent_color: 6711211,
locale: 'en-GB',
mfa_enabled: true,
premium_type: 0,
email: 'my@email.com',
verified: true,
image_url: 'https://cdn.discordapp.com/avatars/218748538039828480/aa9f10fb12bb0f1ab225f78de5f06104.png'
}
在这里,我们实际上找到了所需的内容,image_url
字段包含最新的映像。
但是TS和IntelliSense不让我访问它。profile.<>
的唯一选项是email
、image
、name
和sub
。所有这些选项都返回字符串或未定义,我尝试的图像总是返回未定义。尽管image_url
显然是我们想要的图像。
1条答案
按热度按时间kiz8lqtg1#
如果您确信
image_url
将始终存在,则不会造成太大的伤害:你总是可以安全地使用一个保护子句:
或者干脆自己制作图片的URL
(this不和谐头像的网址是什么样的用户ID,后跟哈希)