**主要内容:**对于使用Unity开发出来的客户端程序,实现登录注册功能。
应用程序的登录注册功能主要是客户端与服务器之间的一次账号验证操作。即客户端根据用户输入的用户名或者手机号及键入的密码或者验证码,向服务器发送验证请求,服务器在收到数据后,再数据库中对需要验证的账户进行比对验证,将验证结果返回发送给客户端,客户端再作出相应的反应,是成功,还是失败,还是警告等等。
登录注册信息交流图:
**说明:**服务器端的逻辑代码就不再详述,本文主要讲述如何在客户端实现登录注册功能。
接下来看客户端实现登录注册的功能:
列出登录注册需要用到的一些变量:
上述的变量以此为用户名,密码,短信验证码,电子邮箱,电话,设备的操作系统,渠道ID,电话号码,昵称,
首先从注册开始:
输入手机号和密码会保存到phoneNum和password中,点击注册按钮会触发OnRegisterAndLoginClick()函数
然后在内部会调用获取验证码的函数GetCaptcha():
getURL
是用来获取服务器的位置,因为在向服务器发送消息时会发送一个数据,即手机号,所以需要将他保存在HttpParams
对象中,这个类继承字典类型,故而该对象其实就是一个字典。HttpRequestInterface.Instance.getCaptchaCallback = GetCaptchaCallback;
接下来是绑定了一个执行完获取验证码操作之后的一个回调函数.HttpRequestInterface.Instance.GetCaptcha(RegisterData, getURL, this);
这个就是执行真正的获取验证码的操作了。具体代码为:
在该函数中用开启乐一个协程,红框中的协程是核心逻辑:
可以看到红色是上面提到的网络请求数据,在这里就是手机号,他的数据流向。蓝色是上面提到的资源定位符他的数据流向。发现最后其实都是使用一个UnityWebRequest
实例request
向服务器发送一个http请求。使用协程等待消息的反馈。在下面反馈后会解析生成一个jsondata
对象,里面包含着请求获得验证码的状态信息。***(实际的运行操作中执行到此时,手机就会收到短信验证码了)***
再接着就是执行那个回调函数GetCaptchaCallback()
没什么内容:
验证码获取成功后,输入验证码即可开始注册操作,此时才会将用户输入的手机号,密码,验证码,等等数据再发给服务器,用以保存在服务器中。执行函数OnRegister()
这个函数逻辑中跟上述的思路一样,主要就是发送的数据不同而已,在此不再赘述。
那么账号的注册操作就算是完成了。
接下来看登录过程
其实实际中的登录过程应该是分为三种形式的:
一:如果在注册的过程中将用户注册的数据信息都保存在本地中,那么,在登陆时,就可以先去与本地中的配置文件进行比对,如果成功就直接登录,若不成功那么就向服务器发送信息进行请求登录验证。
二:如果是启动应用程序时发现在本地配置文件中有完整的用户配置信息的话,那么就不需要登录操作直接就进入应用程序。
三:不管本地有没有用户的配置文件,都要向服务器发送请求验证登录。
其实在实际的应用中肯定是前两个使用得更多一点,但是此时为了记述最重要的部分,以最后一种方式来讲。
输入完手机号与密码后点击登录将执行OnLogin()
函数
核心逻辑仍是与上面的注册部分相同,红框部分中的方法中核心的代码仍是LoadAssetsManager.Instance.PostWebRequest()
不再赘述。