游戏内用户认证
运行机制
启动器将通过桌面应用认证的用户数据放在–xsolla-login-token
参数中以JWT格式发送给游戏。您可使用该参数来设置游戏内自动用户认证。
主要JWT声明
身份认证或邮箱地址确认后,令牌会包含主要声明。这些声明的存在不依赖于用户数据库和认证调用。
声明 | 类型 | 必需 | 描述 |
---|---|---|---|
exp | Unix Timestamp | 是 | 令牌过期的日期和时间。默认过期时间是24小时。您可以更改各登录管理器项目的过期时间。 |
iss | string | 是 | 给令牌签名的服务:https://login.xsolla.com 。 |
iat | Unix Timestamp | 是 | 授予令牌的日期和时间。 |
sub | string (UUID) | 是 | 写入在艾克索拉登录管理器服务器侧的用户ID。 |
groups | array | 是 | 用户所在组的列表。每个组的写入格式如下:
|
xsolla_login_project_id | string (UUID) | 是 | 登录管理器项目ID。 |
username | string | 用户名。 | |
publisher_id | integer | 拥有登录管理器项目的商户ID。 | |
email | string | 用户邮箱地址。 | |
payload | string | 身份认证过程中在payload参数中传递的附加信息。 | |
promo_email_agreement | boolean | 同意接收电子简讯。可为以下值:
true 值。要向登录管理器小组件的注册表单添加该功能:
| |
connection_information | string | 显示用户是否确认了其出生日期。确认由okname服务进行。 |
社交网络帐户认证
通过社交网络进行认证后包含在令牌中的声明如下。这些声明的存在不依赖于用户数据库。
声明 | 类型 | 必需 | 描述 |
---|---|---|---|
provider | string | 是 | 认证使用的社交网络的名称。可以是:amazon 、apple 、baidu 、battlenet 、discord 、facebook 、github 、google 、kakao 、linkedin 、mailru 、microsoft 、msn 、naver 、ok 、paypal 、psn 、qq 、reddit 、steam 、twitch 、twitter 、vimeo 、vk 、wechat 、weibo 、yahoo 、yandex 、youtube 、xbox 。 |
id | string | 是 | 社交网络中的用户ID。 |
is_cross_auth | boolean | 显示静默认证请求正在进行中。 | |
social_access_token | string | 用于认证的社交网络帐户access_token 参数。请联系您的客户成功经理或发送邮件至csm@xsolla.com设置该功能 | |
picture | string (URL) | 社交网络中用户个人资料图片的链接。 | |
birthday | date (RFC 3339) | 社交网络中的用户出生日期。 | |
gender | string | 社交网络中的用户性别。 | |
name | string | 社交网络中的用户昵称。 |
用户流程
- 用户登录启动器。
- 启动器从艾克索拉登录管理器服务器收到包含用户信息的授权令牌。
- 用户从启动器中启动游戏。
- 启动游戏时,启动器向游戏客户端传入以下参数:
--xsolla-login-token <token>
— 从艾克索拉登录管理器服务器获取的授权令牌。--xsolla-locale <locale>
— UI语言。
示例:
Copy
game.exe --xsolla-login-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InAudHVnb2x1a292QHhzb2xsYS5jb20iLCJleHAiOjE1ODU1MDYxMTMsImdyb3VwcyI6W10sImlhdCI6MTU4NDY0MjExMywiaXNzIjoiaHR0cHM6Ly9sb2dpbi54c29sbGEuY29tIiwicGFydG5lcl9kYXRhIjp7ImFkbWluIjp0cnVlfSwicGF5bG9hZCI6IiIsInByb21vX2VtYWlsX2FncmVlbWVudCI6dHJ1ZSwicHJvdmlkZXIiOiJ4c29sbGEiLCJyZWRpcmVjdF91cmwiOiIiLCJzdWIiOiIyNmYxNzI5Ni00Nzk5LTExZTgtOTBkMC00MjAxMGE4YTAwMTkiLCJ0eXBlIjoic29jaWFsIiwidXNlcm5hbWUiOiJzb21lX3VzZXJAbWFpbC5jb20iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6Ikk2QTJrTEZPQ2JkcnUzamIxMjNyT3JmWnNkTnFpdVcxMjNpWTdKcW85OHI5b0hPbyIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNDBkYjJlYTQtNWQ0Mi0xMWU2LWEzZmYtMDA1NDU2YTBlMTRhIn0.ZsTNiwY2iPp7HKqHs5g6JXzL2kv_RVuMNBlF-Tn2ccE --xsolla-locale en
- 游戏客户端通过以下方式之一向游戏服务器发送获得的用户令牌以检索用户数据:
如何获取
- 实现用户数据的检索:
- 为游戏设置参数处理以自动对用户进行身份认证。
- 实现在游戏客户端上根据
--xsolla-locale <locale>
参数中获取的语言选择界面语言。 - 实现跟踪新用户以及在游戏服务器上为其创建帐户。
在游戏服务器上解码JWT
- 在发布商帐户中打开您的项目,然后前往登录管理器部分。
- 在登录管理器项目窗格中单击配置。
- 前往安全性区块并选择JWT签名部分。
- 复制密钥字段的值。
- 选择库并将其连接到应用程序的服务器侧。
- 将步骤4中复制的值传入解码函数条目。
注意
请勿将密钥告诉任何人。如果发生密钥泄露,请立即更新。
使用Login API检索用户数据
调用获取用户详细信息Login API方法来检索用户数据。
用户注册
要跟踪新用户注册:
- 在发布商帐户中打开您的项目,然后前往登录管理器部分。
- 在登录管理器项目窗格中单击配置。
- 在顶部设置区块,单击回调URL。
- 在回调URL字段中,输入用户注册后将其重定向到的URL地址。
- 配置在游戏中创建新帐户。注册后,用户将被重定向到回调URL字段中指定的URL(附加
is_new=1
参数)。 - 如要获取填充该帐户的信息,请使用Login API方法。
示例:
Copy
https://<callbackUrl>?is_new=1&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWR
UI语言
Example | Value | Meaning |
---|---|---|
–xsolla-locale en | “en”“ru”“cn”“tw”“fr”“de”“it”“pt”“es”“pl”“cs”“ko”“ar”“bg”“he”“ja”“tr”“th”“vi”“ro” | “English”“Русский”“简体中文”“中国传统的”“Français”“Deutsch”“Italiano”“Português”“Español”“Polski”“Čeština”“한국어”“العربية”“Български”“עברית”“日本語”“Türkçe”“ไทย”“Tiếng Việt”“Română” |
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。