Unity专用SDK(PC、网页端) / 社交网络帐户登录
  返回文档

Unity专用SDK(PC、网页端)

社交网络帐户登录

在您的应用程序中,可实现通过用户的社交网络帐户进行用户身份认证。如用户的首次登录是通过社交网络进行的,将自动创建一个新帐户。用户无需输入用户名、邮箱地址或其他数据。

有两种方法实现通过社交网络进行身份认证:

  • 基于Web的身份认证。此方式下,应用程序在浏览器中打开一个表单来完成通过所选社交网络进行认证。此方式对于移动应用和桌面应用均适用。
  • 本机身份认证。此方式下,通过用户设备上的社交网络应用程序执行认证。此方式只适用于移动应用。

注:
要通过用户的Apple ID、Face ID或Touch ID在您的iOS应用中认证用户身份,请实现基于Web的身份认证。此方式下,SDK方法使用iOS的原生库。

社交网络登录可以是您应用程序的首选或备选认证方式。

如将社交网络登录用作备选认证方式,则在满足以下条件的情况下,社交网络帐户将自动关联至现有用户帐户:

  • 使用用户名/邮箱地址和密码注册的用户通过社交网络帐户登录您的应用程序。
  • 社交网络返回一个邮箱地址。
  • 用户在社交网络帐户中的邮箱地址与其注册您的应用程序时使用的邮箱地址一致。

您也可以实现手动关联社交网络帐户

详解

通过方法详解文档了解高级设置。

如何设置通过社交网络进行基于Web的身份认证

SDK支持以下提供商的社交网络登录:

  • Amazon
  • Apple
  • 百度
  • Battle.net
  • Discord
  • Facebook
  • GitHub
  • Google
  • Kakao
  • LinkedIn
  • MSN
  • Mail.ru
  • Microsoft
  • Naver
  • Odnoklassniki
  • PayPal
  • QQ
  • Reddit
  • Steam
  • Twitch.tv
  • Twitter
  • VK
  • Vimeo
  • 微信
  • 微博
  • Xbox Live
  • Yahoo
  • Yandex
  • YouTube

要设置通过Web服务进行身份认证:

  1. 在应用程序界面,添加通过社交网络进行认证的按钮。
  2. 在发布商帐户中设置登录管理器项目的社交网络连接
  3. 在应用程序侧实现身份认证逻辑

在艾克索拉发布商帐户中设置登录管理器项目的社交网络连接

注意
发布商帐户中,确保应用程序中使用的登录管理器项目勾选了经典登录社交网络登录选项。后续可以更改登录方式,点击更改登录方法链接即可。之前保存的设置不会丢失。
  1. 发布商帐户中打开您的项目。
  2. 在侧边栏中单击登录管理器
  3. 在登录管理器项目面板中单击配置
  4. 在导航页上,前往身份认证区块,然后选择社交网络登录部分。
  1. 连接用户可用于注册和登录应用程序的社交网络:
    • 要连接社交网络,请单击⚙图标,然后选择连接
    • 要一次性连接多个社交网络,请选择需要的窗格(其边框会变成绿色),然后从管理下拉菜单中选择连接
    • 要连接所有可用的社交网络,请单击全选,然后从管理下拉菜单中选择连接
注:
默认使用艾克索拉的应用程序ID和密钥进行身份认证。如设置应用程序时使用的是社交网络提供商的开发者帐户,可指定您自己的应用程序ID和密钥。关于如何找到应用程序ID和密钥的详细说明,见发布商帐户中的社交网络版块设置。

在应用程序侧进行集成

点击社交网络登录按钮时,实现以下逻辑:

  1. 对于桌面应用:
    1. 使用GetSocialNetworkAuthUrl SDK方法获取注册/登录页面URL。
    2. 使用BrowserHelper.Instance.InAppBrowser方法在浏览器中打开注册/登录页面。
    3. 订阅URL更改事件。方法是添加BrowserHelper.Instance.InAppBrowser.AddUrlChangeHandler(OnUrlChanged)回调。
    4. 跟踪用户成功登录后的页面URL变化。
    5. 从活动页面的URL中获取认证代码。您可以使用ParseUtils.TryGetValueFromUrl() SDK辅助方法来进行。
    6. 通过ExchangeCodeToToken SDK方法换取认证代码,然后在发送给艾克索拉服务器的请求中使用。
注:

该逻辑的实现示例见演示项目Assets/Xsolla.Demo/Login/Scripts/Login/Auth/SocialAuth.cs脚本。

社交网络登录不适用于外部浏览器。SDK包含一个由艾克索拉为桌面应用研发的内置浏览器。您可以使用艾克索拉内置浏览器或可让您跟踪URL改变的其他内置浏览解决方案。

  1. 对于Android应用:
    1. 创建一个AndroidSDKSocialAuthHelper类的对象。
    2. 调用PerformSocialAuth方法,并将以下参数传入方法:
      • SocialProvider — 社交网络的名称
      • onSuccess — 用户认证成功回调
      • onCancelled — 用户取消认证回调
      • onError — 错误回调
    3. 获取onSuccess回调在token参数中返回的令牌,然后在发送给艾克索拉服务器的请求中使用。
注:
该逻辑的实现示例见演示项目Assets/Xsolla.Demo/Login/Scripts/Login/Auth/AndroidSocialAuth.cs脚本。
  1. 对于iOS应用:
    1. 创建一个IosSDKSocialAuthHelper类的对象。
    2. 调用PerformSocialAuth方法,并将以下参数传入方法:
      • SocialProvider — 社交网络的名称
      • onSuccess — 用户认证成功回调
      • onCancelled — 用户取消认证回调
      • onError — 错误回调
    3. 获取onSuccess回调在LoginOAuthJsonResponse对象的access_token字段中返回的令牌,然后在发送给艾克索拉服务器的请求中使用。
注:
该逻辑的实现示例见演示项目Assets/Xsolla.Demo/Login/Scripts/Login/Auth/IosSocialAuth.cs脚本。
本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏

如何设置通过社交网络进行本机用户认证

本机用户认证可以让用户通过其移动设备上配置的社交网络帐户来登录您的应用程序。

用户首次登录时,社交网络应用程序将启动并询问是否允许进行用户认证。允许后,未来的认证将自动进行,无需用户执行任何操作。

目前SDK已实现通过以下社交网络进行本机用户认证:

  • Google
  • Facebook
  • 微信
  • QQ

要配置本机身份认证:

  1. 在应用程序界面,添加通过社交网络进行身份认证的按钮。
  2. 创建适用于Android的Unity项目编译版本
  3. 在社交网络的开发者帐户中配置应用程序:
    1. 对于通过Facebook进行认证:
      1. 注册并创建一个新应用程序。
      2. 在您的Facebook开发者帐户中设置应用页面
    2. 对于通过Google进行认证,请在Google API Console中设置项目
    3. 对于通过微信进行认证
      1. 注册并创建一个新应用程序。
      2. 提交审核申请。
    4. 对于通过QQ进行认证:
      1. 注册并创建一个新应用程序。
      2. 提交审核申请。

  1. 在艾克索拉侧设置通过社交网络进行用户认证:
    1. 对于Facebook和Google,请在发布商帐户中设置社交网络连接
    2. 对于微信和QQ,请联系您的帐户经理进行设置。
  2. 为您的Unity项目设置资源
  3. 在应用程序侧实现身份认证逻辑

为Android创建Unity项目编译版本

  1. 前往您的Unity项目。
  2. 在主菜单中单击File > Build settings
  3. Platform面板中单击Android
  4. 单击Build

在接下来的本机用户认证配置中,还会用到:

  • File > Build settings中选择Android平台后,在Inspector面板的Package Name字段中找到的包名称。
  • Android类名称 — 主要活动的类名,包括应用的命名空间(如com.domain.appname.activity)。类名可在AndroidManifest.xml中找到。主要活动的标签应包含intent-filter标签连同android.intent.action.MAIN动作和android.intent.category.LAUNCHER类别。
  • Android散列密钥。可通过OpenSSL获取

在Facebook开发者帐户中设置应用页面

  1. 前往Facebook开发者帐户中的项目设置。
  2. 前往设置 > 基本
  3. 单击添加平台,选择Android
  4. Google Play包名称字段中指定Unity项目中的包名称。
  5. 类名字段中指定Unity项目的Android类名。
  6. 密钥散列字段中指定Unity项目的Android散列密钥。
  7. 单击保存更改

在接下来的本机用户认证配置中,还会用到设置 > 基本部分中的应用编号应用密钥

在Google API Console中设置项目

  1. 前往Google API Console
  2. 单击新建项目
  3. 指定项目名称位置,然后单击保存
  4. 前往所创建的项目,然后单击侧边栏上的OAuth同意屏幕
  5. 选择外部,然后单击创建
  6. 指定必需参数,然后单击保存
  7. 在侧边栏上点击凭据
  8. 为您的Unity应用程序创建一个OAuth 2.0客户端:
    1. 单击创建凭据,选择OAuth客户端ID
    2. 应用类型字段中指定Android
    3. 指定名称
    4. 包名称字段中指定您Unity应用程序的包名称。
    5. SHA-1证书指纹字段中指定您Unity应用程序的Android散列密钥。
    6. 单击创建
    7. 单击确定
  1. 为Web应用创建一个OAuth 2.0客户端:
    1. 单击创建凭据,选择OAuth客户端ID
    2. 应用类型字段中指定Web应用
    3. 指定名称
    4. 已获授权的重定向URI部分单击添加URI,并指定https://login.xsolla.com/api/social/oauth2/callback URI。
    5. 单击创建
    6. 单击确定

在接下来的本机用户认证配置中,还会用到Web应用的客户端ID设置中的客户端ID客户端密钥

在艾克索拉发布商帐户中设置登录管理器项目的社交网络连接

注意
发布商帐户中,确保应用程序中使用的登录管理器项目勾选了经典登录社交网络登录选项。后续可以更改登录方式,点击更改登录方法链接即可。之前保存的设置不会丢失。
  1. 发布商帐户中打开您的项目。
  2. 在侧边栏中单击登录管理器
  3. 在登录管理器项目面板中单击配置
  4. 在导航页上,前往身份认证区块,然后选择社交网络登录部分。
  1. 要设置社交网络,请前往社交网络版块,单击标题右侧的⚙图标,然后选择连接
注:
要使用社交网络授权,请在社交网络版块的设置中指定项目的应用程序ID和应用程序密钥。应用程序ID和密钥在社交网络提供商的开发者帐户中提供。发布商帐户社交网络版块设置中有如何找到应用程序ID和密钥的详细说明。

为Unity项目设置资源

  1. 前往您的Unity项目。
  2. 在主菜单中单击Window > Xsolla > Edit Settings
  3. 指定应用程序ID:
    1. Facebook App ID字段中指定Facebook开发者帐户中的应用编号
    2. Google server ID字段中指定Google API Console中的Web应用的客户端ID
    3. WeChat App ID字段中指定微信应用设置中的AppID
    4. QQ App ID字段中指定QQ应用设置中的AppID

在应用程序侧进行集成

点击社交网络登录按钮时,实现以下逻辑:

  • 对于Android应用,创建一个AndroidSDKSocialAuthHelper实例,然后调用PerformSocialAuth方法。实现示例见演示项目中提供的Assets/Xsolla.Demo/Login/Scripts/Login/Auth/AndroidSocialAuth.cs脚本。
  • 对于iOS应用,创建一个IosSDKSocialAuthHelper实例,然后调用PerformSocialAuth方法。实现示例见演示项目中提供的Assets/Xsolla.Demo/Login/Scripts/Login/Auth/IosSocialAuth.cs脚本。
本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏

有用链接

上次更新时间: 2023年10月10日

发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。

报告问题
我们非常重视内容质量。您的反馈将帮助我们做得更好。
请留下邮箱以便我们后续跟进
感谢您的反馈!