Esempio n. 1
0
        public Tuple <string, UserInfo> WechatLogin(WechatLoginInfo loginInfo)
        {
            Console.WriteLine($"WeixinLoginInfo:{JsonConvert.SerializeObject(loginInfo)}");
            var wechatUser = _weChatAppDecrypt.Decrypt(loginInfo);

            if (wechatUser == null)
            {
                throw new TokenInvalidException("解密微信用户信息失败.");
            }
            var userInfo = _context.Users.FirstOrDefault(u => u.WechatOpenID == wechatUser.openId);

            if (userInfo == null)
            {
                userInfo = new UserInfo()
                {
                    UserName     = wechatUser.nickName,
                    WechatOpenID = wechatUser.openId,
                    AvatarUrl    = wechatUser.avatarUrl,
                    JsonData     = JsonConvert.SerializeObject(wechatUser)
                };
                _context.Users.Add(userInfo);
                _context.SaveChanges();
            }
            string token = userInfo.NewLoginToken;

            WriteUserToken(userInfo, token);
            return(Tuple.Create <string, UserInfo>(token, userInfo));
        }
Esempio n. 2
0
        public Tuple <string, UserInfo> WechatLogin(WechatLoginInfo loginInfo)
        {
            Console.WriteLine($"WeixinLoginInfo:{JsonConvert.SerializeObject(loginInfo)}");
            var wechatUser = _weChatAppDecrypt.Decrypt(loginInfo);

            if (wechatUser == null)
            {
                throw new TokenInvalidException("解密微信用户信息失败.");
            }
            var userInfo = _userDapper.FindByWechatOpenID(wechatUser.openId);

            if (userInfo == null)
            {
                _userDapper.InsertUserForWechat(new UserInfo()
                {
                    UserName     = wechatUser.nickName,
                    WechatOpenID = wechatUser.openId,
                    AvatarUrl    = wechatUser.avatarUrl,
                    JsonData     = JsonConvert.SerializeObject(wechatUser)
                });
            }
            string token = userInfo.NewLoginToken;

            WriteUserToken(userInfo, token);
            return(Tuple.Create <string, UserInfo>(token, userInfo));
        }