Browse Source

[WHAT] 會員管理 API [WHY] ShowEasy 後台開發 [HOW] 將會員登入移至會員控制器

Dev
berlin-tzen 2 years ago
parent
commit
b0eb50b4dd
  1. 113
      EuroTran/EasyBL.WEBAPP/ShowEasy/MembersService.cs
  2. 26
      EuroTran/WebApp/Controllers/MembersController.cs

113
EuroTran/EasyBL.WEBAPP/ShowEasy/MembersService.cs

@ -22,6 +22,119 @@ namespace EasyBL.WEBAPP.SYS
public class MembersService : ServiceBase
{
//會員登入
public HttpResponseMessage Login(TestUser dto)
{
SuccessResponseMessage srm = null;
string sError = null;
var db = SugarBase.GetIntance();
try
{
do
{
var sUserID = dto.Account;
var sPassword = dto.Password;
if (string.IsNullOrWhiteSpace(sUserID))
{
sError = @"帳號不能為空"; //帳號不能為空
break;
}
if (string.IsNullOrWhiteSpace(sPassword))
{
sError = @"密碼不能為空"; //密碼不能為空
break;
}
var sEncryptPwd = SecurityUtil.Encrypt(sPassword);//將輸入之密碼轉換驗證格式
//string sPwd1 = SecurityUtil.Decrypt("wTBo6uXVBlVH8Ms76xiE4w==");
//string sPwd1 = SecurityUtil.Decrypt("3EOyqH52VBUg3pj5Wy0rwQ==");
var oUser = db.Queryable<SETB_CMS_Member>().Single(x => x.Account == sUserID && x.Password == sEncryptPwd);
if (oUser == null)
{
sError = @"帳號或密碼不正確"; //帳號或密碼不正確
break;
}
if (oUser.Status != @"1")
{
sError = @"該帳號未啓用"; //該帳號無效
break;
}
var ticket = new OTB_SYS_TicketAuth
{
OrgID = oUser.OrgID,
UserID = oUser.Account,
UserName = oUser.FirstName,
Token = SignExtension.CreateToken(),
// LoginIp = i_crm.ClientIP,
LoginTime = DateTime.Now
};
var iExpireTime = 240;
var sExpireTime = Common.GetSystemSetting(db, oUser.OrgID, @"ExpireTime");
if (!string.IsNullOrEmpty(sExpireTime))
{
iExpireTime = int.Parse(sExpireTime);
}
else
{
iExpireTime = int.Parse(Common.GetAppSettings(@"ExpireTime"));
}
ticket.ExpireTime = DateTime.Now.AddMinutes(iExpireTime); //30分钟过期
ticket.IsVerify = @"Y";
var oTicket = db.Queryable<OTB_SYS_TicketAuth>().Single(x => x.OrgID == oUser.OrgID && x.UserID == oUser.Account);
if (oTicket != null)
{
db.Updateable(ticket).IgnoreColumns(x => x.OutlookId).Where(x => x.NO == oTicket.NO).ExecuteCommand();
}
else
{
ticket.CreateTime = DateTime.Now;
db.Insertable(ticket).ExecuteCommand();
}
//記錄log日誌
db.Insertable(new OTB_SYS_LoginLog
{
OrgId = ticket.OrgID,
UserId = ticket.UserID,
UserName = ticket.UserName,
LoginIp = ticket.LoginIp,
LoginTime = ticket.LoginTime
}).ExecuteCommand();
HttpRuntimeCache.Set(ticket.OrgID + ticket.UserID, ticket, iExpireTime * 60, true);
HttpContext.Current.Session.Add(@"orgid", ticket.OrgID);
HttpContext.Current.Session.Add(@"userid", ticket.UserID);
HttpCookie cookie = new HttpCookie("EURO_COOKIE");//初始化並設置Cookie的名稱
DateTime dt = DateTime.Now;
TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0);//過期時間為1分鐘
cookie.Expires = dt.Add(ts);//設置過期時間
cookie.Values.Add("orgid", ticket.OrgID);
cookie.Values.Add("userid", ticket.UserID);
HttpContext.Current.Response.AppendCookie(cookie);
var strtoken = string.Format(@"orgid:{0},userid:{1},token:{2}", ticket.OrgID, ticket.UserID, ticket.Token);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add("authtoken", SecurityUtil.Encrypt(strtoken));
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
}
finally
{
if (null != sError)
{
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = sError
};
}
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
//會員個人訊息查詢
public HttpResponseMessage GetMemberInfo(string OrgID, string Account)
{

26
EuroTran/WebApp/Controllers/MembersController.cs

@ -15,23 +15,15 @@ namespace WebApp.Controllers
{
public class MembersController : ApiController
{
/// <summary>
/// 查詢會員個人信息
/// </summary>
/// <param name="memberID"></param>
/// <returns></returns>
//[HttpGet]
//public HttpResponseMessage GetMemberInfo(string memberID)
//{
// return new MembersService().GetMemberInfo(memberID);
//}
/// <summary>
/// 修改會員個人信息
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost]
//[SEApiSecurityFilter]
public HttpResponseMessage Login([FromBody] TestUser dto)
{
//登陸並返回token
return new MembersService().Login(dto);
}
[HttpPost]
[SEApiSecurityFilter]
public HttpResponseMessage Member([FromBody] MemberDTO Member)
@ -82,7 +74,7 @@ namespace WebApp.Controllers
//重設密碼
[HttpPost]
[SEApiSecurityFilter]
public HttpResponseMessage ResetNewPassword(string OrgID, string MemberID, string Password)
public HttpResponseMessage ResetNewPassword(string Password)
{
var SEToken = SETokenUtil.GetToken(this.Request);

Loading…
Cancel
Save