跳转到主要内容
使用 Log in with X(亦称 Sign in with X)在你的网站或应用上放置一个按钮,让 X 用户几乎只需一次点击即可享受注册用户账户的权益。该功能适用于网站、iOS、移动端和桌面应用。

功能

  • 易用性——新访客首次登录你的站点只需点两下即可完成。
  • 与 X 集成——“使用 X 登录”流程可授权代表你的用户调用 X API。
  • 基于 OAuth——众多客户端库和示例代码均兼容“使用 X 登录”API。

适用范围

  • 浏览器 - 只要用户可以使用浏览器,即可集成 Log in with X。了解浏览器登录流程。
  • 移动设备 - 任何可连接网络的移动设备都可使用 Log in with X。了解移动端登录流程。

实现 Log in with X

浏览器和移动端网页对 Log in with X 的实现基于 OAuth。本页演示在登录流程中获取 access token 所需的请求。 要使用“Log in with X”流程,请前往你的 X App 设置,并确保已启用“Allow this app to be used to Sign in with X?”。 本页假定读者了解如何使用 OAuth 1.0a 协议对请求进行签名。若要了解如何对请求进行签名,请阅读 Authorizing a request 页面。 如果你想检查本页中请求的签名,所使用的 consumer secret 为:L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg。此值仅用于测试,不能用于真实请求。 通过获取请求令牌、重定向用户,以及将请求令牌转换为 access token 来实现 Log in with X 的三个步骤如下所示。
  • 步骤 1
  • 步骤 2
  • 步骤 3

步骤 1:获取请求令牌

要启动登录流程,您的 X app 必须向 POST oauth/request_token 发送签名消息以获取请求令牌。此请求中唯一的独特参数是 oauth_callback,它必须是您希望用户在完成步骤 2 后重定向到的 URL 的 URL 编码版本。其余参数由 OAuth 签名过程添加。
注意: 您在 POST oauth/request_token endpoint 中使用的任何 callback URL 都必须先在 开发者门户X App 设置 中注册。
示例请求(Authorization 标头已换行显示):
POST /oauth/request_token HTTP/1.1
User-Agent: themattharris 的 HTTP 客户端
Host: api.x.com
Accept: */*
Authorization:
        OAuth oauth_callback="http%3A%2F%2Flocalhost%2Fsign-in-with-twitter%2F",
              oauth_consumer_key="cChZNFj6T5R0TigYB9yd1w",
              oauth_nonce="ea9ec8429b68d6b77cd5600adbbb0456",
              oauth_signature="F1Li3tvehgcraF8DMJ7OyxO4w9Y%3D",
              oauth_signature_method="HMAC-SHA1",
              oauth_timestamp="1318467427",
              oauth_version="1.0"
你的 App 应检查响应的 HTTP 状态码。任何非 200 的值都表示失败。响应正文将包含参数 oauth_token、oauth_token_secret 和 oauth_callback_confirmed。你的 App 应验证 oauth_callback_confirmed 是否为 true,并将另外两个值保存以供后续步骤使用。示例响应(响应正文已换行包装):
HTTP/1.1 200 OK
Date: Thu, 13 Oct 2011 00:57:06 GMT
Status: 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 146
Pragma: no-cache
Expires: Tue, 31 Mar 1981 05:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0
Vary: Accept-Encoding
Server: tfe

oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0&
oauth_token_secret=veNRnAWe6inFuo8o2u8SLLZLjolYDmDP7SzL0YfYI&
oauth_callback_confirmed=true

  • Additional resources
  • Browser sign in flow
  • Mobile sign in flow

使用 X 登录的其他资源

客户端库

X libraries 中列出的客户端库可帮助你实现“使用 X 登录”。请按前述步骤使用 /oauth/authenticate endpoint。

品牌工具包

X 建议你的应用使用官方的 X Brand Toolkit 以保持一致的品牌形象。请下载并保存这些素材,在创建“Login with X”按钮时使用。
I