Browse Source

fix ReSendVerifyMail、SignupWithEmail

認證碼隨機產生6碼、時效取當下時間
Dev
Janie 2 years ago
parent
commit
495e7979db
  1. 62
      EuroTran/EasyBL.WEBAPP/ShowEasy/SignupService.cs

62
EuroTran/EasyBL.WEBAPP/ShowEasy/SignupService.cs

@ -125,8 +125,6 @@ namespace EasyBL.WEBAPP.SYS
SuccessResponseMessage srm = null;
var db = SugarBase.GetIntance();
string sError = null;
try
{
do
@ -139,19 +137,20 @@ namespace EasyBL.WEBAPP.SYS
//string sSubscribe = newUser.Subscribe;
string sMemberID = Guid.NewGuid().ToString(); //會員編號為GUID
string sOrgID = "TG"; //公司編號預設為TG
string sStatus = "0"; //會員狀態為未驗證(F)
string sStatus = "0"; //會員狀態為未驗證
string sType = "Email";
var rand = new Random(); //認證碼(隨機產生)
var sVerifyCode = new char[5]; //只要6碼
//var NumString = "0123456789"; //從這串裡面取值(只要數字)
//for(int i = 0; i < sVerifyCode.Length; i++)
//{
// sVerifyCode[i] = NumString[rand.Next(NumString.Length)];
//}
var RandomTest = 6;
//var testCode = new String(sVerifyCode);
//System.Diagnostics.Debug.WriteLine("sVerifyCode: " + sVerifyCode);
string[] strings = new string[RandomTest];
string[] str = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
Random r = new Random();
string sRandom = "";
for(int i = 0; i< RandomTest; i++)
{
sRandom += str[r.Next(str.Length)];
}
var checkAccount = db.Queryable<SETB_CMS_Member>()
.Where(x => x.OrgID == sOrgID && x.Account == sAccount)
@ -172,9 +171,9 @@ namespace EasyBL.WEBAPP.SYS
newUser.Password = sEncryptPwd;
newUser.Account = newUser.Email;
newUser.MemberType = sType;
newUser.VerifyCode = "123456"; //認證碼
newUser.VerifyCode = sRandom; //認證碼
var iExpireTime = 5; //(單位為小時,預設5分鐘到期) 1 Days = 24 hrs
var iExpireTime = 5; //(5分鐘到期)
var sExpireTime = Common.GetSystemSetting(db, sOrgID, @"VerifyCodeExpireTime");
if (!string.IsNullOrEmpty(sExpireTime))
{
@ -236,9 +235,38 @@ namespace EasyBL.WEBAPP.SYS
{
do
{
var Mailto = db.Queryable<SETB_CMS_Member>().Single(x => x.Email == Email);
string sMemberID = Mailto.MemberID;
string sOrgID = Mailto.OrgID;
var User = db.Queryable<SETB_CMS_Member>().Single(x => x.Email == Email); //找會員
string sOrgID = User.OrgID;
//每次重新寄出都要更新認證碼
var RandomTest = 6;
string[] strings = new string[RandomTest];
string[] str = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
Random r = new Random();
string sRandom = "";
for (int i = 0; i < RandomTest; i++)
{
sRandom += str[r.Next(str.Length)];
}
//每次重新寄出都要更新時效
var iExpireTime = 5; //(5分鐘到期)
var sExpireTime = Common.GetSystemSetting(db, sOrgID, @"VerifyCodeExpireTime");
if (!string.IsNullOrEmpty(sExpireTime))
{
iExpireTime = int.Parse(sExpireTime);
}
var aExpireTime = DateTime.Now.AddMinutes(iExpireTime);
var newVerifyCode = db.Updateable<SETB_CMS_Member>() //更新認證碼
.UpdateColumns(x => new SETB_CMS_Member { VerifyCode = sRandom, ExpireTime = aExpireTime })
.Where(x => x.Email == Email)
.ExecuteCommand();
var Mailto = db.Queryable<SETB_CMS_Member>().Single(x => x.Email == Email); //找會員
string sError = "";
var oEmail = new Emails(); //寄件人

Loading…
Cancel
Save