社交网络帐户登录

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

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

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

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

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

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

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

详解

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

如何设置通过社交网络进行基于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. 调用Login库的startSocialAuth方法。
  2. onActivityResult方法内调用Login库的finishSocialAuth方法。
SDK参考文档
了解SDK方法及其参数的详细信息。
本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏

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

注意
使用Login库时请参考本方法详解。

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

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

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

  • Google
  • Facebook
  • 微信
  • QQ

要配置本机身份认证:

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

  1. 在艾克索拉侧设置通过社交网络进行用户认证:
    1. 对于Facebook和Google,请在发布商帐户中设置社交网络连接
    2. 对于微信和QQ,请联系您的客户成功经理或发送邮件至csm@xsolla.com进行设置。

  1. 安装通过社交网络进行用户认证的库。方法是,打开应用程序的build.gradle文件,在依赖项部分添加以下代码行,其中<version_number>是所需的库版本:
    • 对于通过Facebook进行认证:
Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-facebook:<version_number>'
    • 对于通过Google进行认证:
Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-google:<version_number>'
    • 对于通过微信进行认证:
Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-wechat:<version_number>'
    • 对于通过QQ进行认证:
Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-qq:<version_number>'

  1. 使用以下参数初始化Login库:
    • facebook_id — Facebook开发者帐户中的应用编号
    • google_id — Google API Console中的Web应用的客户端ID
    • wechat_id — 微信开发者帐号中的AppID
    • qq_id — QQ开发者帐号中的AppID

通过OAuth 2.0进行认证时库的初始化示例:

Copy
Full screen
Small screen
val loginConfig = LoginConfig.OauthBuilder()
                .setProjectId("login-project-id")
                .setOauthClientId("oauth2-client-id")
                .setSocialConfig(XLogin.SocialConfig(
                     facebookAppId = "facebook_id",
                     googleServerId = "google_id",
                     wechatAppId = "wechat_id",
                     qqAppId = "qq_id"
                ))

                .build()

XLogin.init(applicationContext, loginConfig)
  1. 要通过微信进行认证,请修改应用程序代码:
    • WXEntryActivity类添加至<your_package_name>.wxapi包,其中<your_package_name>是您的应用程序包名称:
Copy
Full screen
Small screen
package <your_package_name>.wxapi

import android.app.Activity
import android.os.Bundle
import com.tencent.mm.opensdk.modelbase.BaseReq
import com.tencent.mm.opensdk.modelbase.BaseResp
import com.tencent.mm.opensdk.openapi.IWXAPI
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.xsolla.android.login.util.WechatUtils

class WXEntryActivity : Activity(), IWXAPIEventHandler {

    private lateinit var iwxapi: IWXAPI

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        iwxapi = WXAPIFactory.createWXAPI(this, WechatUtils.wechatAppId, false)
        iwxapi.handleIntent(intent, this)
        finish()
    }

    override fun onReq(req: BaseReq?) {
    }

    override fun onResp(resp: BaseResp) {
        WechatUtils.wechatResult = resp
    }
}
    • AndroidManifest.xml文件中添加以下元素:
Copy
Full screen
Small screen
<activity
        android:name="<your_package_name>.wxapi.WXEntryActivity"
        android:exported="true"
        android:launchMode="singleTask" />

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

  1. 前往Facebook开发者帐户中的项目设置。
  2. 前往设置 > 基本
  3. 单击添加平台,选择Android
  4. Google Play包名称字段中指定您Android应用程序的包名称。
  5. 类名字段中指定默认活动的完全限定类名称。
  6. 生成一个散列密钥并填入密钥散列字段中。
  7. 单击保存更改

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

在Google API Console中设置项目

  1. 前往Google API Console
  2. 单击新建项目
  3. 指定项目名称位置,然后单击保存
  4. 前往所创建的项目,然后单击侧边栏上的OAuth同意屏幕
  5. 选择外部,然后单击创建
  6. 指定必需参数,然后单击保存
  7. 在侧边栏上点击凭据
  8. 为您的Android应用创建一个OAuth 2.0客户端:

    1. 单击创建凭据,选择OAuth客户端ID
    2. 应用类型字段中指定Android
    3. 指定名称
    4. 包名称字段中指定您Android应用程序的包名称。
    5. 获取SHA密钥。
    6. SHA-1证书指纹字段中指定上一步中生成的SHA密钥。
    7. 单击创建
    8. 单击确定

  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和密钥的详细说明。

在应用程序侧进行集成

实现以下点击社交网络登录按钮后的逻辑:
  1. 调用Login库的startSocialAuth方法。
  2. onActivityResult方法内调用Login库的finishSocialAuth方法。
SDK参考文档
了解SDK方法及其参数的详细信息。
本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏

有用链接

上次更新时间: 2024年7月31日

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

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