Browse Source

支持使用验证码登录

master
yashen 7 years ago
parent
commit
eda64c457a
2 changed files with 62 additions and 0 deletions
  1. +2
    -0
      B3WeChat/BO/ScanLoginRequest.cs
  2. +60
    -0
      B3WeChat/Rpcs/ClientRpc.cs

+ 2
- 0
B3WeChat/BO/ScanLoginRequest.cs View File

@ -26,5 +26,7 @@ namespace BWP.B3WeChat.BO
public bool Confirmed { get; set; }
public string CustomerUsername { get; set; }
public string VerifyCode { get; set; }
}
}

+ 60
- 0
B3WeChat/Rpcs/ClientRpc.cs View File

@ -3,6 +3,7 @@ using Bwp.MainSystem.BO;
using BWP.B3WeChat.BO;
using BWP.B3WeChat.BO.NamedValueTemplate;
using BWP.B3WeChat.Utils;
using BWP.Web.Utils;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
@ -154,6 +155,65 @@ namespace BWP.B3WeChat.Rpcs
}
/// <summary>
/// 请求登录验证码
/// </summary>
/// <param name="requestID"></param>
/// <param name="username"></param>
[Rpc(RpcFlags.SkipAuth)]
public static void SendLoginVerifyCode(long requestID,string username)
{
var request = WebBLUtil.GetSingleDmo<ScanLoginRequest>(new Tuple<string, object>("ID", requestID));
if (request == null || request.Confirmed)
{
throw new Exception("请求已失效");
}
var openID = WebBLUtil.GetDmoProperty<CustomerUser, string>("OpenID",
new Tuple<string, object>("CustomerCode", request.CustomerCode),
new Tuple<string, object>("CustomerUsername", username));
if (string.IsNullOrEmpty(openID))
{
throw new Exception("未能发现匹配的用户");
}
request.VerifyCode = StringUtil.CreateRandomString("0123456789", 6);
using (var context = new TransactionContext())
{
context.Session.Update(request);
context.Commit();
}
SendMessageUtil.SendSystemMessage(openID, request.CustomerUsername, "您请求登录系统的验证码是:" + request.VerifyCode);
}
[Rpc(RpcFlags.SkipAuth)]
public static void VerifyCodeLogin(long requestID, string username, string verifyCode)
{
var request = WebBLUtil.GetSingleDmo<ScanLoginRequest>(new Tuple<string, object>("ID", requestID));
if (request == null || request.Confirmed)
{
throw new Exception("请求已失效");
}
if (request.VerifyCode == verifyCode)
{
request.Confirmed = true;
using (var context = new TransactionContext())
{
context.Session.Update(request);
context.Commit();
}
}
}
/// <summary>
/// 浏览器查询是否已扫码登录
/// </summary>


Loading…
Cancel
Save