0
点赞
收藏
分享

微信扫一扫

【Serverless】Unity快速集成认证服务实现邮件登录

概述:

认证服务可以为您的应用快速构建安全可靠的用户认证系统,您只需在应用中访问认证服务的相关能力,而不需要关心云侧的设施和实现。

本次将带来如何使用Unity编辑器快速集成认证服务SDK并实现邮箱地址登录。

集成准备

Unity环境配置

下载Unity Hub,安装Unity编辑器、VS2019、Android平台工具、Documentation。

【Serverless】Unity快速集成认证服务实现邮件登录_登录界面

创建好Unity工程后,Android环境配置如图:

Edit-Preferences-External Tools配置好之前下载的Android SDK。

【Serverless】Unity快速集成认证服务实现邮件登录_环境配置_02

Edit-Project Settings-Player-Other Settings配置包名。

【Serverless】Unity快速集成认证服务实现邮件登录_登录界面_03

AGC环境配置

1、在AGC创建项目和应用

【Serverless】Unity快速集成认证服务实现邮件登录_环境配置_04

2、开通认证服务,其中这次演示使用邮箱登录的方式,所以启用邮箱地址的认证方式

【Serverless】Unity快速集成认证服务实现邮件登录_登录界面_05

【Serverless】Unity快速集成认证服务实现邮件登录_登录界面_06

3、返回项目设置界面,下载最新的Json文件,将下载好的Json文件放到项目Assets\Resources目录下;

集成认证服务和云数据库SDK。下载AGC Unity SDK并在项目的“Resources/AGConnect”文件夹下添加DLL依赖项。

【Serverless】Unity快速集成认证服务实现邮件登录_验证码_07

布局设计

本次演示的Demo是需要用户输入邮箱地址和密码进行注册,然后输入邮箱验证码完成注册与登录。

Demo主要有三个界面布局,是玩家登录界面、游戏创建/加入界面和游戏对局界面,下面是三个布局界面的展示截图。

登录界面

【Serverless】Unity快速集成认证服务实现邮件登录_登录界面_08

输入邮箱验证码界面

【Serverless】Unity快速集成认证服务实现邮件登录_验证码_09

登录完成界面

【Serverless】Unity快速集成认证服务实现邮件登录_验证码_10

功能实现

调用​​AGConnectAuth.RequestVerifyCodeAsync​​​申请邮箱注册的验证码。该验证码将发送给用户邮箱,确保该邮箱为用户本人所有,同时跳转至输入验证码界面。

public async void OpenVerifyPanel()

{

VerifyCodeSettings settings = new VerifyCodeSettings.Builder()

.SetAction(VerifyCodeSettings.ActionRegisterLogin)

.SendInterval(30)

.SetLang("en-US")

.Build();

Task<VerifyCodeResult> verifyCodeResultTask =

AGConnectAuth.Instance.RequestVerifyCodeAsync(Email.GetComponent<TMP_InputField>().text, settings);

try

{

await verifyCodeResultTask;

}

catch (System.Exception)

{

if (verifyCodeResultTask.Exception.InnerException is AGCException exception)

Debug.Log(exception.ErrorMessage);

else Debug.Log(verifyCodeResultTask.Exception.InnerException.ToString());

}

LoginPanel.SetActive(false);

Verify.SetActive(true);

}

【Serverless】Unity快速集成认证服务实现邮件登录_登录界面_11

调用​​AGConnectAuth.CreateUserAsync​​​注册用户。注册成功后,用户自动登录,无需再次调用登录接口。

public async void Register()

{

EmailUser emailUser = new EmailUser.Builder()

.SetEmail(Email.GetComponent<TMP_InputField>().text)

.SetVerifyCode(VerifyCode.GetComponent<TMP_InputField>().text)

.SetPassword(Password.GetComponent<TMP_InputField>().text)

.Build();



Task<ISignInResult> createUserTask = AGConnectAuth.Instance.CreateUserAsync(emailUser);

try

{

await createUserTask;

var result = createUserTask.Result;

var user = AGConnectAuth.Instance.GetCurrentUser();

Verify.SetActive(false);

LoginSuccessful.SetActive(true);

}

catch (System.Exception)

{

if (createUserTask.Exception.InnerException is AGCException exception)

Debug.Log(exception.ErrorMessage);

else

Debug.Log(createUserTask.Exception.InnerException.ToString());



Verify.SetActive(false);

LoginUnsuccessful.SetActive(true);

}

}

【Serverless】Unity快速集成认证服务实现邮件登录_环境配置_12

邮箱地址+密码登录

public async Task<bool> Login(string email, string password)

{

if (AGConnectAuth.Instance.GetCurrentUser() == null)

{

try

{

IAGConnectAuthCredential credential = EmailAuthProvider.CredentialWithPassword(email, password);

var result = await AGConnectAuth.Instance.SignInAsync(credential);

Debug.Log("Login Successful");

return true;

}

catch (AGCAuthException ex)

{

Debug.LogError("Login Failed: " + ex.ErrorMessage);

return false;

}

catch (System.Exception ex)

{

Debug.LogError("Login Failed: " + ex.Message);

return false;

}

}

else

{

Debug.LogError("User Already Logged In");

return true;

}

}

【Serverless】Unity快速集成认证服务实现邮件登录_环境配置_13

账号登出代码

public void SignOut()

{

_dbConnect.CloseZone();

AGConnectAuth.Instance.SignOut();

LoginSuccessful.SetActive(false);

LoginPanel.SetActive(true);

}

【Serverless】Unity快速集成认证服务实现邮件登录_登录界面_14

功能测试

点击File-Build Settings,选择Android平台,点击Build And Run,打包APK,然后在设备中进行安装。

【Serverless】Unity快速集成认证服务实现邮件登录_登录界面_15

1、输入邮箱号和密码,点击“Register”进行注册

【Serverless】Unity快速集成认证服务实现邮件登录_验证码_16

2、输入注册邮箱收到的验证码,点击“Verify“进行注册登录,进入登陆成功界面

【Serverless】Unity快速集成认证服务实现邮件登录_验证码_17

3、在AGC控制台可以查看已注册的账号。

【Serverless】Unity快速集成认证服务实现邮件登录_验证码_18

欲了解更多更全技术文章,欢迎访问​​https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh​​


举报

相关推荐

0 条评论