/// <summary> /// 添加 /// </summary> /// <param name="decodedUser"></param> /// <returns></returns> public WxUser DoAdd(DecodedUserInfo decodedUser) { var user = new WxUser() { OpenId = decodedUser.openId, NickName = decodedUser.nickName, AvatarUrl = decodedUser.avatarUrl, Gender = (WxSexEnum)decodedUser.gender, Country = decodedUser.country, Province = decodedUser.province, City = decodedUser.city, Language = decodedUser.language, CreateTime = DateTime.Now }; DC.Set <WxUser>().Add(user); DC.SaveChanges(); return(user); }
public Rbac_User WeappRegist(Wx_App app, DecodedUserInfo userInfo, string mobile = null) { return(Session.QueryFirst <Rbac_User>( new RequestContext("wx", "exec_wx_regist") .SetParam(new { newid = App.IdWorker.NextId(), mobile = mobile, nickname = userInfo.nickName, photo = userInfo.avatarUrl, province = userInfo.province, city = userInfo.city, country = userInfo.country, appid = app.Id, authtype = "wechat", authid = userInfo.openId, unionid = userInfo.unionId }) )); }
public virtual async Task CreateOrUpdate(DecodedUserInfo userInfo, string appName) { var find = await _wechatUserRepository.FirstOrDefaultAsync(x => x.appid == userInfo.watermark.appid && x.openid == userInfo.openId); if (find == null) { await _wechatUserRepository.InsertAsync( new WechatUserinfo(userInfo.watermark.appid, userInfo.openId, userInfo.unionId, userInfo.nickName, userInfo.avatarUrl, appName : appName) { city = userInfo.city, province = userInfo.province, sex = userInfo.gender, country = userInfo.country }); } else { _mapper.Map(userInfo, find); } }
/// <summary> /// 【异步方法】添加解码后的用户信息 /// </summary> /// <param name="bag"></param> /// <param name="decodedUserInfo"></param> public static async Task AddDecodedUserInfoAsync(SessionBag bag, DecodedUserInfo decodedUserInfo) { bag.DecodedUserInfo = decodedUserInfo; await UpdateAsync(bag.Key, bag, bag.ExpireTime - SystemTime.Now).ConfigureAwait(false); }
/// <summary> /// 添加解码后的用户信息 /// </summary> /// <param name="bag"></param> /// <param name="decodedUserInfo"></param> public static void AddDecodedUserInfo(SessionBag bag, DecodedUserInfo decodedUserInfo) { bag.DecodedUserInfo = decodedUserInfo; Update(bag.Key, bag, bag.ExpireTime - SystemTime.Now); }
public IActionResult QuikLogin(WxUserInfo info) { CommonResult result = new CommonResult(); try { if (info != null) { DecodedUserInfo decodedUserInfo = EncryptHelper.DecodeUserInfoBySessionId(info.SessionId, info.EncryptedData, info.Iv); UserInputDto userInput = new UserInputDto(); userInput.NickName = decodedUserInfo.nickName; userInput.HeadIcon = decodedUserInfo.avatarUrl; userInput.Gender = decodedUserInfo.gender; userInput.Country = decodedUserInfo.country; userInput.Province = decodedUserInfo.province; userInput.City = decodedUserInfo.city; userInput.language = info.language; userInput.OpenId = decodedUserInfo.openId; userInput.OpenIdType = "yuebon.openid.wxapplet"; userInput.ReferralUserId = info.ReferralUserId; userInput.UnionId = decodedUserInfo.unionId; User user = userService.GetUserByOpenId(userInput.OpenIdType, decodedUserInfo.openId); if (user == null) { result.Success = userService.CreateUserByWxOpenId(userInput); } else { result.Success = userService.UpdateUserByOpenId(userInput); } user = userService.GetUserByOpenId(info.openIdType, info.openId); if (user != null) { JwtOption jwtModel = App.GetService <JwtOption>(); TokenProvider tokenProvider = new TokenProvider(jwtModel); TokenResult tokenResult = tokenProvider.LoginToken(user, "wxapplet"); var currentSession = new YuebonCurrentUser { UserId = user.Id, Account = user.Account, Name = user.RealName, NickName = user.NickName, AccessToken = tokenResult.AccessToken, AppKey = "wxapplet", CreateTime = DateTime.Now, HeadIcon = user.HeadIcon, Gender = user.Gender, ReferralUserId = user.ReferralUserId, MemberGradeId = user.MemberGradeId, Role = roleService.GetRoleEnCode(user.RoleId) }; CurrentUser = currentSession; YuebonCacheHelper yuebonCacheHelper = new YuebonCacheHelper(); TimeSpan expiresSliding = DateTime.Now.AddMinutes(120) - DateTime.Now; yuebonCacheHelper.Add("login_user_" + user.Id, currentSession, expiresSliding, true); result.ErrCode = ErrCode.successCode; result.ResData = currentSession; result.Success = true; } else { result.ErrCode = ErrCode.failCode; } } }catch (Exception ex) { Log4NetHelper.Error("微信快速(一键)登录异常", ex); result.ErrMsg = "微信快速(一键)登录:" + ex.Message; result.ErrCode = ErrCode.failCode; } return(ToJsonContent(result)); }