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

认证流程
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
actor User as User
participant TP as 3rd party
participant XL as Xsolla Login
participant OP as Partner OAuth2 Server
User->>TP: Clicks login button
TP->>XL: Calls Auth via social network (Xsolla Login API)
XL->>OP: Calls partner's Authorization URL
alt Success
OP-->>XL: Sends authorization code to https://login.xsolla.com/api/social/callback
else Dependency service unavailable
OP-->>XL: Sends "Dependency service unavailable" error. Error code = "010-035"
end
XL->>OP: Calls partner's Token URL to exchange authorization code to access token
alt Success
OP-->>XL: Sends access token
else Error getting token
OP-->>XL: Sends "Error occurred while getting OAuth 2.0 Access token" error. Error code = "010-015"
end
XL->>OP: Calls partner's Your info URL to get user data
alt Success
OP-->>XL: Sends user data
else Error getting profile
OP-->>XL: Sends "Failed to get social profile" error. Error code = "010-036"
end
XL-->>TP: Returns Xsolla Login token
TP-->>User: User is authenticated
首次登录流程
用户点击授权小组件上的 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 部分。
点击经典登录选项面板中的 Configure。
进入 Authentication 块并选择 OAuth 2.0 login connection。
填写以下字段:
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。
如果您通过Login API方法使用集成,请配置在
provider_name中传输您的提供商ID,格式为:"<authorization_name>-<publisher_id>",其中<authorization_name>是您在提供商设置中指定的集成名称,<publisher_id>是您在发布商帐户中的项目ID。根据选择的授权协议,使用以下方法传递provider_name参数:
发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。