概述:

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

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

集成准备

Unity环境配置

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

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

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

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

AGC环境配置

1、在AGC创建项目和应用

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

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

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

布局设计

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

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

登录界面

输入邮箱验证码界面

登录完成界面

功能实现

调用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);

    }

调用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);

        }

    }

邮箱地址+密码登录

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;

        }

    }

账号登出代码

public void SignOut()

    {

        _dbConnect.CloseZone();

        AGConnectAuth.Instance.SignOut();

        LoginSuccessful.SetActive(false);

        LoginPanel.SetActive(true);

    }   

功能测试

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

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

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

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

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

【Serverless】Unity快速集成认证服务实现邮件登录的更多相关文章

  1. 【Serverless】快速集成云函数HarmonyOS

    ​1.学习目标 什么是AppGallery Connect云函数 云函数是一项Serverless计算服务,提供FaaS(Function as a Service)能力,可以帮助开发者大幅简化应用开 ...

  2. 如何在 Xamarin 中快速集成 Android 版认证服务 - 邮箱地址篇

    Xamarin 作为微软提供的移动服务多系统开发平台,成为很多开发者首选的应用开发平台.AppGallery Connect(以下简称 AGC)也在逐步的支持 Xamarin 的 SDK.认证服务也是 ...

  3. 如何在Xamarin中快速集成Android版认证服务-手机号码篇

    Xamarin作为微软提供的移动服务多系统开发平台,成为很多开发者首选的应用开发平台.AppGallery Connect(以下简称AGC)也在逐步的支持Xamarin的SDK.认证服务也是支持Xam ...

  4. ABP集成WIF实现单点登录

    ABP集成WIF实现单点登录 参考 ojlovecd写了三篇关于WIF文章. 使用WIF实现单点登录Part III —— 正式实战 使用WIF的一些开源示例. https://github.com/ ...

  5. 如何通过Gitalk评论插件,5分钟为你的博客快速集成评论功能

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  6. Spring Boot快速集成kaptcha生成验证码

    Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码,以图片的形式显示,从而无法进行复制粘贴:下面将详细介绍下Spring Boot快速集成kaptcha生成验证码的过程. 本 ...

  7. 利用本地HTTPS模拟环境为FastAPI框架集成FaceBook社交三方登录

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_174 提起社交,就不得不说马克·扎克伯格(Mark Zuckerberg)一手创办的社交网络(FaceBook).进入2020年, ...

  8. Ink – 帮助你快速创建响应式邮件(Email)的框架

    Ink 可以帮助你快速创建响应的 HTML 电子邮件,可工作在任何设备和客户端.这个 CSS 框架帮助您构建可在任何设备上阅读的 HTML 电子邮件.曾经需要你兼顾各种邮件客户端的日子一去不复返了,I ...

  9. 快速集成iOS基于RTMP的视频推流

    前言 这篇blog是iOS视频直播初窥:<喵播APP>的一个补充. 因为之前传到github上的项目中没有集成视频的推流.有很多朋友简信和微博上问我推流这部分怎么实现的. 所以, 我重新集 ...

  10. 快速集成图片浏览器快速集成图片浏览器->MJPhotoBrowser的使用

    介绍: 一个比较完整的图片浏览器,高仿了新浪微博的图片浏览效果,功能包括:下载浏览互联网图片,点击缩略图全屏显示图片.当加载较大图片时会出现圆形进度条,滑动浏览所有图片.保存图片到本地相册.GIF图片 ...

随机推荐

  1. mysql杂记漫谈

    Hello,大家好,我是烤鸭,这几天消失了一下,主要是线上系统出了点小bug和sql性能问题,在努力搬砖,就把之前的设计模式系列放了一下下,正好趁这个复习巩固了一下sql执行计划和sql优化等相关的东 ...

  2. 进阶:spring-bean生命周期流程

    Bean的生成过程 主要流程图 1. 生成BeanDefinition Spring启动的时候会进行扫描,会先调用org.springframework.context.annotation.Clas ...

  3. CentOS7部署FastDFS+nginx模块

    软件下载 # 已经事先把所需软件下载好并上传到/usr/local/src目录了 https://github.com/happyfish100/libfastcommon/archive/V1.0. ...

  4. 报时机器人的rasa shell执行流程分析

      本文以报时机器人为载体,介绍了报时机器人的对话能力范围.配置文件功能和训练和运行命令,重点介绍了rasa shell命令启动后的程序执行过程. 一.报时机器人项目结构 1.对话能力范围 (1)能够 ...

  5. C#-02 传入参数的一些用法2

    C#_02 参数应用2 一.关于 "ref" 局部变量和 "ref" 返回 在前面已经明白了 ref 关键词传递一个对象引用给方法调用,这样在方法中对对象修改过 ...

  6. 国产电脑可较为流畅运行的Windows系统

    系统是Windows2003,内置了WPS和IE8,使用QEMU TCG运行,速度慢,凑合能用. 使用前先sudo apt install qemu-system-x86,把压缩包中的2003.qco ...

  7. .NET 7 RC 2 发布,倒计时一个月发布正式版

    微软2022-10-22 发布了 .NET 7 RC 2,下一站是.NET 7正式发布,就在下个月Net Conf 2022(11月8日)期间正式发布. 经过长达一年时间的开发,.NET 7 规划的所 ...

  8. 【软件学习】如何下载安装Mathtype,并将其加载至Word

    参考视频: https://www.bilibili.com/video/BV1cV41117SR?from=search&seid=11224207889712369816 首先,需要安装. ...

  9. JSP页面实现验证码校验

    目录 验证码校验分析 生成验证码 测试验证码 校验验证码 测试验证码校验 添加验证码刷新 在网页页面的使用中为防止"非人类"的大量操作和防止一些的信息冗余,增加验证码校验是许多网站 ...

  10. JUC(2)使用condition实现精准通知唤醒

    package com.orderPC; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks. ...