通过自己的OAuth 2.0提供商进行身份认证
工作原理
您可以添加使用OAuth 2.0协议通过您的社交网络进行用户授权。要在授权小组件上为您的社交网络启用相关按钮,请在发布商帐户中指定该提供商的详细信息。
您可以添加使用OAuth 2.0协议通过您的社交网络进行用户授权。要在授权小组件上为您的社交网络启用相关按钮,请在您的帐户中指定该提供商的详细信息。

认证流程
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }}}%%
sequenceDiagram
participant U as 用户
participant A as 应用程序
participant XL as 艾克索拉登录管理器服务器
participant P as 您的OAuth2服务器
U->>A: 点击登录按钮
A->>XL: 发送社交网络身份认证请求
XL->>P: 请求用户授权
alt 收到授权码
P-->>XL: 将授权码发送至https://login.xsolla.com/api/social/callback
else 授权URL不可用
P-->>XL: 发送“Dependency service unavailable”(依赖服务不可用)错误(010-035)
end
XL->>P: 用授权码换取访问令牌
alt 收到访问令牌
P-->>XL: 发送访问令牌
else 令牌交换失败
P-->>XL: 发送“Error occurred while getting OAuth 2.0 Access token”(获取OAuth 2.0访问令牌时出错)错误(010-015)
end
XL->>P: 请求用户数据
alt 收到用户数据
P-->>XL: 发送用户数据
else 用户数据获取失败
P-->>XL: 发送“Failed to get social profile”(获取社交帐户资料失败)错误(010-036)
end
XL-->>A: 返回用户JWT
A-->>U: 完成身份认证
首次登录流程
用户点击授权小组件上的 Log in with [Your Platform] 按钮。
用户被重定向到您的登录或同意页面(地址在设置中的 Authorization URL 字段中指定)。
用户在您的系统中输入凭证并批准访问。
您的系统将用户重定向回艾克索拉,并附带授权码。
艾克索拉联系您的系统以交换授权码获取访问令牌(地址在设置中的 Token URL 字段中指定)。
艾克索拉使用访问令牌从您的系统中检索用户的个人资料数据(ID、邮件等)(地址在设置中的 Your info URL 字段中指定)。
用户登录并作为认证的艾克索拉用户返回应用程序。
返回用户流程
用户点击授权小组件上的 Log in with [Your Platform] 按钮。
用户被重定向到您的登录或同意页面(地址在设置中的 Authorization URL 字段中指定)。
您的系统识别活动会话并跳过凭证屏幕。如果您的系统要求每次访问都重新认证,用户将再次看到登录表单。
您的系统检查用户是否已授予请求的权限范围。如果已同意且未被撤销,则跳过同意屏幕。
您的系统将用户重定向回艾克索拉,并附带授权码。
艾克索拉联系您的系统以交换授权码获取访问令牌(地址在设置中的 Token URL 字段中指定)。
艾克索拉使用访问令牌从您的系统中检索用户的当前个人资料数据(地址在设置中的 Your info URL 字段中指定)。
用户登录并返回应用程序。整个流程通常在几秒钟内完成,无需用户进行任何可见的交互。
认证失败
授权URL不可用(错误 010-035)
用户点击授权小组件上的 Log in with [Your Platform] 按钮。
用户被重定向到您的登录或同意页面(地址在设置中的 Authorization URL 字段中指定)。
合作伙伴OAuth2服务器不可用并返回错误。
艾克索拉登录管理器收到“依赖服务不可用”错误(010-035),并且不继续进行。
令牌交换失败(错误 010-015)
用户点击授权小组件上的 Log in with [Your Platform] 按钮。
用户被重定向到您的登录或同意页面(地址在设置中的 Authorization URL 字段中指定)。
用户在您的系统中输入凭证并批准访问。
您的系统将用户重定向回艾克索拉,并附带授权码。
艾克索拉联系您的系统以交换授权码获取访问令牌(地址在设置中的 Token URL 字段中指定)。
合作伙伴OAuth2服务器未能发放令牌并返回错误。
艾克索拉登录管理器收到“获取OAuth 2.0访问令牌时发生错误”错误(010-015),并且不继续进行。
用户数据检索失败(错误 010-036)
用户点击授权小组件上的 Log in with [Your Platform] 按钮。
用户被重定向到您的登录或同意页面(地址在设置中的 Authorization URL 字段中指定)。
用户在您的系统中输入凭证并批准访问。
您的系统将用户重定向回艾克索拉,并附带授权码。
艾克索拉联系您的系统以交换授权码获取访问令牌(地址在设置中的 Token URL 字段中指定)。
艾克索拉使用访问令牌从您的系统中检索用户的个人资料数据(ID、邮件等)(地址在设置中的 Your info URL 字段中指定)。
合作伙伴OAuth2服务器未能返回用户数据。
艾克索拉登录管理器收到“获取社交资料失败”错误(010-036),并且不继续进行。
如何获取
要通过OAuth 2.0启用授权:
- 在您自己的OAuth 2.0提供商设置中添加
https://login.xsolla.com/api/social/oauth2/callback作为允许的重定向URI,以防止授权失败。
- 在发布商帐户中打开您的项目,并进入 Players > Login 部分。
- 在您的帐户中打开项目,并进入 Other tools > Login 部分。
- 在您的帐户中打开项目,并进入 Players > Login 部分。
- 在您的帐户中打开项目,并进入 Players > Login 部分。
- 在您的帐户中打开项目,并进入 Players > Login 部分。
点击经典登录选项面板中的 Configure。
进入 Authentication 块并选择 OAuth 2.0 login connection。
- 填写以下字段:
- Authorization name — 集成名称。用于在发布商帐户中识别。可以包含数字、拉丁字母、连字符和下划线,不含空格,最长100个字符。
- Authorization name — 集成名称。用于在您的帐户中识别。可以包含数字、拉丁字母、连字符和下划线,不含空格,最长100个字符。
Authorization URL — 用于用户认证的方法的URL。
Token URL — 用于获取访问令牌的方法的URL。
Your info URL — 使用访问令牌获取用户个人资料数据(如ID和邮件)的方法的URL。
Client ID — 授权服务器上客户端的唯一标识符。可以包含数字、拉丁字母、连字符和下划线,不含空格,最长255个字符。
Client secret key — 由您的授权系统生成的唯一ID。可以包含数字、拉丁字母、连字符和下划线,不含空格,长度为8-255。
Permission scope — 您的系统在授权期间向用户请求的访问权限列表(例如,
openid,profile,email)。
设置 Key name map:
提供您系统中邮件地址的键名(可选)。
提供您系统中用户标识符的键名。
在 Settings 部分中,指定其他认证设置(可选):
auth_content_type—Content-Type页眉的值。auth_header— 请求用户数据时传递授权令牌的页眉(页眉中的授权)。auth_param— 请求用户数据时传递授权令牌的查询参数名称(参数中的授权)。token_type— 令牌类型。可能的值:Bearer,OAuth。use_pkce— 指示在授权期间使用 PKCE(代码交换证明密钥)技术的标志。强烈建议激活此功能以确保最高的安全标准。
注:键名应以$.开头,例如,$.response[0].email和$.response[0].id。

如果您通过授权小组件使用集成,请进行自定义设置:
指定 Authorization button name。最大长度为30个字符。
上传您的Logo。推荐尺寸:24 × 24px。支持的格式:JPG、PNG和SVG。
设置授权按钮颜色。
点击 Save changes。
- 如果您通过登录管理器API方法进行集成,请在
provider_name中配置您的提供商ID传输,格式为:"<authorization_name>-<publisher_id>",其中<authorization_name>是您在提供商设置中指定的集成名称,<publisher_id>是发布商帐户中项目的ID。根据所选的授权协议,使用以下方法传递provider_name参数:
- 如果您通过登录管理器API方法进行集成,请在
provider_name中配置您的提供商ID传输,格式为:"<authorization_name>-<publisher_id>",其中<authorization_name>是您在提供商设置中指定的集成名称,<publisher_id>是您帐户中项目的ID。根据所选的授权协议,使用以下方法传递provider_name参数:
发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。