Beispiel #1
0
        public async Task <JsonResult> GetEdit([FromBody] FMIntId entity)
        {
            var jm = new AdminUiCallBack();

            var model = await _sysUserServices.QueryByIdAsync(entity.id);

            if (model == null)
            {
                jm.msg = "不存在此信息";
                return(new JsonResult(jm));
            }

            var userSexTypes = EnumHelper.EnumToList <GlobalEnumVars.UserSexTypes>();
            var userRoles    = await _sysUserRoleServices.QueryListByClauseAsync(p => p.userId == model.id);

            var roleIds = userRoles.Select(p => p.roleId).ToList();
            var roles   = await _sysRoleServices.QueryListByClauseAsync(p => p.deleted == false);


            jm.code = 0;
            jm.data = new
            {
                model,
                userSexTypes,
                roles,
                roleIds
            };

            return(new JsonResult(jm));
        }
Beispiel #2
0
        public async Task <JsonResult> GetUserInfo()
        {
            var jm        = new AdminUiCallBack();
            var userModel = await _sysUserServices.QueryByIdAsync(_user.ID);

            jm.code = 0;
            jm.msg  = "数据获取正常";
            jm.data = new
            {
                userModel.userName,
                userModel.nickName,
                userModel.createTime
            };
            return(new JsonResult(jm));
        }
Beispiel #3
0
        public async Task <object> RefreshToken(string token = "")
        {
            var jm = new AdminUiCallBack();

            if (string.IsNullOrEmpty(token))
            {
                jm.code = 1001;
                jm.msg  = "token无效,请重新登录!";
                return(new JsonResult(jm));
            }
            var tokenModel = JwtHelper.SerializeJwt(token);

            if (tokenModel != null && tokenModel.Uid > 0)
            {
                var user = await _sysUserServices.QueryByIdAsync(tokenModel.Uid);

                if (user != null)
                {
                    var userRoles = await _sysUserServices.GetUserRoleNameStr(user.userName, user.passWord);

                    //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色
                    var claims = new List <Claim> {
                        new Claim(ClaimTypes.Name, user.userName),
                        new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjectToString()),
                        new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_permissionRequirement.Expiration.TotalSeconds).ToString())
                    };
                    claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s)));

                    //用户标识
                    var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);
                    identity.AddClaims(claims);

                    var refreshToken = JwtToken.BuildJwtToken(claims.ToArray(), _permissionRequirement);
                    jm.code = 0;
                    jm.msg  = "认证成功";
                    jm.data = refreshToken;


                    //插入登录日志
                    var log = new SysLoginRecord();
                    log.username   = user.userName;
                    log.ip         = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
                    log.os         = RuntimeInformation.OSDescription;
                    log.browser    = _httpContextAccessor.HttpContext.Request.Headers[HeaderNames.UserAgent];
                    log.operType   = (int)GlobalEnumVars.LoginRecordType.刷新Token;
                    log.createTime = DateTime.Now;
                    await _sysLoginRecordRepository.InsertAsync(log);

                    return(new JsonResult(jm));
                }
            }
            jm.code = 1001;
            jm.msg  = "token无效,请重新登录!";
            return(new JsonResult(jm));
        }