Пример #1
0
        public bool IsAuthenticated(LoginRequestDTO request, out TnToken token)
        {
            token = null;
            if (!_userService.IsValid(request))
            {
                return(false);
            }
            TnToken data = _jWTService.CreateToken <LoginRequestDTO>(request);

            token = data;
            return(true);
        }
Пример #2
0
        /// <summary>
        /// 执行完成
        /// </summary>
        /// <param name="context"></param>
        public void OnActionExecuted(ActionExecutedContext context)
        {
            string tokenName     = Configuration.GetSection("JWTConfig").GetSection("tokenName").Value;
            int    WaringMinutes = int.Parse(Configuration.GetSection("JWTConfig").GetSection("WaringMinutes").Value);
            string Issuer        = Configuration.GetSection("JWTConfig").GetSection("Issuer").Value;
            string Audience      = Configuration.GetSection("JWTConfig").GetSection("Audience").Value;

            bool      HasToken   = context.HttpContext.Request.Headers.TryGetValue(tokenName, out var tokenobj);
            string    token      = tokenobj.ToString();
            var       ret        = new CommonResponse();
            string    username   = "";
            DateTime  createTime = new DateTime();
            TokenType tokenType  = tokenHelper.ValiTokenState(token, a => a["iss"] == Issuer && a["aud"] == Audience, action =>
            {
                username   = action["username"];
                createTime = DateTime.Parse(action["createTime"]);
            });

            TnToken TokenInfo = null;

            if (createTime.AddMinutes(WaringMinutes) <= DateTime.Now)
            {
                TokenInfo = tokenHelper.CreateToken(new Dictionary <string, object>
                {
                    { "username", username },
                    { "createTime", DateTime.Now }
                });
            }

            if (context.Result is OkObjectResult)
            {
                var data = context.Result as OkObjectResult;
                context.Result = new OkObjectResult(new CommonResponse
                {
                    errcode   = 0,
                    errmsg    = "",
                    TokenInfo = TokenInfo,
                    Data      = data.Value
                });
            }

            if (context.Result is BadRequestObjectResult)
            {
                var data = context.Result as BadRequestObjectResult;
                context.Result = new BadRequestObjectResult(new CommonResponse
                {
                    errcode = -1,
                    errmsg  = data.Value.ToString()
                });
            }
        }