跳至内容
从 NextAuth.js v4 迁移?阅读 我们的迁移指南.

providers/twitter

内置 Twitter 集成。

TwitterProfile

用户查找

可索引

[claims: string]: unknown

属性

data

data: {
  created_at: string;
  description: string;
  email: string;
  entities: {
     description: {
        hashtags: {
           end: number;
           start: number;
           tag: string;
        }[];
     };
     url: {
        urls: {
           display_url: string;
           end: number;
           expanded_url: string;
           start: number;
           url: string;
        }[];
     };
  };
  id: string;
  location: string;
  name: string;
  pinned_tweet_id: string;
  profile_image_url: string;
  protected: boolean;
  url: string;
  username: string;
  verified: boolean;
};
created_at?
optional created_at: string;
description?
optional description: string;

如果用户提供了个人简介描述(也称为个人简介),则为该用户个人简介描述的文本。

要返回此字段,请在授权请求的查询参数中添加 user.fields=description

email?
optional email: string;
注意

Twitter 目前不支持电子邮件。

entities?
optional entities: {
  description: {
     hashtags: {
        end: number;
        start: number;
        tag: string;
     }[];
  };
  url: {
     urls: {
        display_url: string;
        end: number;
        expanded_url: string;
        start: number;
        url: string;
     }[];
  };
};

此对象及其子字段包含有关用户描述中具有特殊含义的文本的详细信息。

要返回此字段,请在授权请求的查询参数中添加 user.fields=entities

entities.description
description: {
  hashtags: {
     end: number;
     start: number;
     tag: string;
  }[];
};

包含有关用户描述中位于 URL、标签、现金标签或提及的详细信息。

entities.description.hashtags
hashtags: {
  end: number;
  start: number;
  tag: string;
  }[];
entities.url
url: {
  urls: {
     display_url: string;
     end: number;
     expanded_url: string;
     start: number;
     url: string;
  }[];
};

包含有关用户个人简介网站的详细信息。

entities.url.urls
urls: {
  display_url: string;
  end: number;
  expanded_url: string;
  start: number;
  url: string;
  }[];

包含有关用户个人简介网站的详细信息。

id
id: string;

此用户的唯一标识符。为了避免与无法处理大整数的语言和工具发生冲突,此标识符将作为字符串返回。

location?
optional location: string;

用户个人简介中指定的地址(如果用户提供了地址)。由于这是一个自由格式的值,因此它可能不表示有效地址,但在使用地址查询执行搜索时可能会模糊评估。

要返回此字段,请在授权请求的查询参数中添加 user.fields=location

name
name: string;

此用户的友好名称,如其个人简介中所示。

pinned_tweet_id?
optional pinned_tweet_id: string;

此用户固定推文的唯一标识符。

通过在授权请求的查询参数中添加 expansions=pinned_tweet_id,可以在 includes.tweets 中获取扩展对象。

profile_image_url?
optional profile_image_url: string;

此用户个人简介图片的 URL,如用户个人简介中所示。

protected?
optional protected: boolean;
url?
optional url: string;

用户个人简介中指定的 URL(如果存在)。

要返回此字段,请在授权请求的查询参数中添加 user.fields=url

username
username: string;

此用户的 Twitter 句柄(屏幕名称)。

verified?
optional verified: boolean;

指示此用户是否为经过验证的 Twitter 用户。

要返回此字段,请在授权请求的查询参数中添加 user.fields=verified

includes?

optional includes: {
  tweets: {
     id: string;
     text: string;
  }[];
};
tweets?
optional tweets: {
  id: string;
  text: string;
  }[];

default()

default(config): OAuthConfig<TwitterProfile>

将 Twitter 登录添加到您的页面。

设置

回调 URL

https://example.com/api/auth/callback/twitter

配置

import { Auth } from "@auth/core"
import Twitter from "@auth/core/providers/twitter"
 
const request = new Request(origin)
const response = await Auth(request, {
  providers: [
    Twitter({
      clientId: TWITTER_CLIENT_ID,
      clientSecret: TWITTER_CLIENT_SECRET,
    }),
  ],
})

资源

OAuth 2

Twitter 支持 OAuth 2,目前是可选的。要启用它,只需将 version: “2.0” 添加到您的 Provider 配置中

Twitter({
  clientId: process.env.TWITTER_ID,
  clientSecret: process.env.TWITTER_SECRET,
  version: "2.0", // opt-in to Twitter OAuth 2.0
})

请记住,虽然此更改很容易,但它会改变您与哪些 Twitter API 以及如何与之交互。阅读官方 Twitter OAuth 2 文档以了解更多详细信息。

Twitter OAuth 2.0 目前不支持电子邮件。

备注

Twitter 是目前唯一使用 OAuth 1.0 规范的内置提供商。这意味着您不会收到 access_tokenrefresh_token,而是分别收到 oauth_tokenoauth_token_secret。请记住将这些添加到您的数据库模式中,以防您使用的是 适配器.

💡

如果您想获取用户的电子邮件地址,则必须在您的应用程序权限中启用“从用户请求电子邮件地址”选项。

默认情况下,Auth.js 假设 Twitter 提供商基于 OAuth 2 规范。

💡

Twitter 提供商带有 默认配置。要覆盖您的用例的默认值,请查看 自定义内置 OAuth 提供商

免责声明 如果您认为在默认配置中发现了一个错误,您可以 打开一个问题

Auth.js 严格遵守规范,无法对提供商与规范的任何偏差负责。您可以打开一个问题,但如果问题是非规范的,我们可能不会寻求解决方案。您可以在 Discussions 中寻求更多帮助。

参数

参数类型
configOAuthUserConfig<TwitterProfile>

返回

OAuthConfig<TwitterProfile>

Auth.js © Balázs Orbán 和团队 -2024