Unity 实现使用邮箱登陆注册功能

news/2024/11/8 15:08:48/

有一下功能
1、账号密码本地存储
2、支持忘记密码 修改密码
3、通过邮箱验证码 注册
4、注册码有时效限制

这只是个小demo,只注重实现功能
下面是代码

using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Mail;
using System.Text.RegularExpressions;
using UnityEditorInternal;
using UnityEngine;
using UnityEngine.UI;
using Random = System.Random;public class Eamile : MonoBehaviour
{//注册界面public GameObject Register;//注册邮箱的输入框public InputField RegisterEamil;//验证码的输入框public InputField CodeInput;//密码输入框public InputField Password;//发送验证码的按钮public Button SendCode;//确认注册按钮public Button Confirm;//返回按钮public Button Return;//登陆界面public GameObject Longin;//登陆邮箱的输入框public InputField LonginEamil;//登陆密码的输入框public InputField LonginPassWord;//登陆按钮public Button LonginBut;//注册按钮public Button RegisterBtu;//忘记密码按钮public Button ForgotPasswordBut;//验证码string a = "0123456789";/// <summary>/// 随机出来的验证码/// </summary>private string code;/// <summary>/// 倒计时/// </summary>private float time;//是否点击了忘记密码private bool isForgotPassword;/// <summary>/// 存储账号/// </summary>//private Dictionary<string, string> SaveAccount = new Dictionary<string, string>();// Start is called before the first frame updatevoid Start(){SendCode.onClick.AddListener(SendEamil);Confirm.onClick.AddListener(ConfirmOnClick);LonginBut.onClick.AddListener(LonginOnClick);RegisterBtu.onClick.AddListener(RegisterOnClick);ForgotPasswordBut.onClick.AddListener(ForgotPassword);Return.onClick.AddListener(ReturnOnClick );}// Update is called once per framevoid Update(){if (time > 0){time -= Time.deltaTime;if (time <= 0){code = "";SendCode.enabled = true ;}}}/// <summary>/// 发送验证码/// </summary>public void SendEamil(){if (PlayerPrefs .HasKey(RegisterEamil.text)&&!isForgotPassword){Debug.Log("账号已注册");return;}try{//实例化一个随机数Random num = new Random();for (int i = 0; i < 4; i++){code = code + a.Substring(num.Next(0, a.Length), 1);}Debug.Log("验证码" + code);SmtpClient mailClient = new SmtpClient("smtp.qq.com");//使用的是qq邮箱,mailClient.EnableSsl = true;mailClient.Credentials = new NetworkCredential("邮箱", "邮箱的授权码");//不知道授权码的  自行百度 Debug.Log(RegisterEamil.text);//发验证码用的邮箱,注册账号的邮箱MailMessage message = new MailMessage(new MailAddress("邮箱"), new MailAddress(RegisterEamil.text));message.Body = "您的验证码为" + code + ",请在30分钟内验证,系统邮件请勿回复!";message.Subject = "验证码";mailClient.Credentials = mailClient.Credentials;// mailClient.Send(message);mailClient.SendCompleted += new SendCompletedEventHandler((sender, arg) =>{bool isResult = arg.Error == null;if (!isResult){//发送失败Debug.LogError(arg.Error);}else{//发送成功}});mailClient.SendAsync(message, null);//发送验证码 按钮失效SendCode.enabled = false;//倒计时  30分钟 1800秒time = 1800;}catch (Exception e){Debug.Log("邮箱格式不正确");}}/// <summary>/// 判断验证码是否正确/// </summary>public bool  CodeBool(){if (code.Equals(CodeInput.text)){Debug.Log("验证码正确");return true;}else{Debug.Log("验证码错误");return false;}}/// <summary>/// 登陆按钮/// </summary>public void LonginOnClick(){//判断是否有这个邮箱账号if (PlayerPrefs .HasKey(LonginEamil.text)){//判断密码是否正确if (PlayerPrefs.GetString( LonginEamil.text).Equals( LonginPassWord.text )){Debug.Log($"登陆成功  账号{LonginEamil.text}   密码{PlayerPrefs.GetString(LonginEamil.text)}");}else{Debug.Log($"邮箱或账号不正确 账号{LonginEamil.text}   密码{PlayerPrefs.GetString(LonginEamil.text)}");}}else{Debug.Log($"邮箱或账号不正确   账号{LonginEamil.text}   密码{PlayerPrefs.GetString(LonginEamil.text)}");}}/// <summary>/// 注册按钮/// </summary>public void RegisterOnClick(){Longin.gameObject.SetActive(false);Register.gameObject.SetActive(true);SendCode.enabled = true ;Debug.Log("注册账号'");LonginEamil.text = "";LonginPassWord.text = "";code = "";}/// <summary>/// 忘记密码/// </summary>public void ForgotPassword(){RegisterOnClick();Debug.Log("忘记密码");isForgotPassword = true;}/// <summary>/// 确认按钮/// </summary>public void ConfirmOnClick(){//验证码时间超出现在    验证码错误if (time <= 0&&!CodeBool()){Debug.Log("验证码已过期  请重新获取验证码");SendCode.enabled = true ;return;}//判断字典是否有这个账号   如果有(说明是要修改密码)  反之注册新的账号if (PlayerPrefs .HasKey(RegisterEamil.text)){//修改密码PlayerPrefs.SetString(RegisterEamil.text, Password.text);Debug.Log("修改密码成功");Debug.Log($"  账号{RegisterEamil.text}   密码{PlayerPrefs.GetString(RegisterEamil.text)}");}else{//注册账号PlayerPrefs.SetString(RegisterEamil.text, Password.text);Debug.Log("注册新账号成功");Debug.Log($"  账号{RegisterEamil.text}   密码{PlayerPrefs.GetString(RegisterEamil.text)}");}ReturnOnClick();}//返回按钮public void ReturnOnClick(){Longin.gameObject.SetActive(true );Register.gameObject.SetActive(false );RegisterEamil.text = "";Password.text = "";CodeInput.text = "";}
}

http://www.ppmy.cn/news/311901.html

相关文章

个人邮箱登陆,邮箱登录入口有哪些?有移动办公app吗?

刚刚入职新的公司&#xff0c;和同事下班路上看到领导要求半小时内邮件报送某个数据&#xff0c;但路上没有带电脑不能登陆邮箱&#xff0c;无法按时报送。看着同事着急的样子&#xff0c;让他试试我的移动办公app——TOM随心邮&#xff0c;无论何时何地都可以分分钟完成邮件发…

手机怎么登陆群邮件服务器,139邮箱登陆登录入口 中国移动139手机邮箱注册图文教程...

现在很多小伙伴都在用中国移动的139邮箱&#xff0c;手机号就是邮箱账号&#xff0c;方便又好记&#xff0c;通过短信或者手机上网等方式&#xff0c;可以随时收、发邮件;免费接收邮件到达提醒&#xff0c;不会担心错过重要邮件;每月话费账单准时投递到邮箱&#xff0c;消费情况…

163vip邮箱登陆入口,怎么登录163邮箱?

电子邮箱中&#xff0c;既适合企业家、高专层管理、初创型公司等办公用&#xff0c;也适合个人商务使用的就是VIP邮箱了。VIP邮箱品牌有TOM邮箱、网易、新浪等&#xff0c;那么登录163邮箱要怎么登录呢&#xff1f;。 163vip邮箱登陆入口——电脑客户端 第一步&#xff1a;打…

微信企业邮箱登陆入口在哪?企业邮箱忘记密码怎么修改?

微信企业邮箱怎么登陆&#xff1f;那么微信有没有企业邮箱呢&#xff1f;是有的&#xff0c;就是TOM企业邮箱。在职场办公中&#xff0c;很多重要的通知及正式文件都是通过邮件进行下发传达的&#xff0c;因此邮箱在我们的工作中有非常重要的作用。 微信企业邮箱登陆入口在哪&…

微信邮箱登录入口,企业微信企业邮箱,企业邮箱登陆入口

打车、购物可使用微信完成&#xff0c;现在 微信邮箱登录入口 第一步&#xff0c;在微信里找到TOM邮箱的“随心邮” 第二步&#xff0c;点击推送消息&#xff0c;或者下方任意按钮&#xff0c;登录企业邮箱账号密码 第三步&#xff0c;输入你的账号密码点绑定&#xff0c;绑…

登录邮箱怎么登录?163手机邮箱登录入口在这里

公司分配了邮箱&#xff0c;一定要知道的是邮箱登录入口&#xff0c;这样方便办公。那登录邮箱怎么登录呢&#xff1f;TOM邮箱登录的几种方式你了解么&#xff1f;163手机邮箱登录入口在哪里呢&#xff1f;了解这些之后在你使用邮箱时会变得更加顺畅&#xff0c;一起来看看吧&a…

使用电脑怎么登录邮箱?

之前有跟大家介绍过手机如何登录邮箱&#xff0c;得到大家的反馈&#xff0c;对电脑登录邮箱也是超级感兴趣的&#xff0c;那么今天就来盘点一下使用电脑登录邮箱&#xff0c;到底有哪些方式&#xff01; 电子邮箱登陆方式 日常工作中&#xff0c;电子邮箱的登录方式主要有以…

个人电子邮箱如何在网页进行登录?

经常使用邮箱的人&#xff0c;经常会问使用什么邮箱登录&#xff0c;会更加方便&#xff0c;我自己使用的邮箱是TOMVIP邮箱&#xff0c;在登陆邮箱时&#xff0c;会在不同场景下登录&#xff0c;网页、客户端、手机微信等。那么快看看怎么登录邮箱才是最方便的呢&#xff1f; …