示例#1
0
        /// <summary>
        /// 判断是否需要登录
        /// </summary>
        /// <param name="context"></param>
        /// <param name="configuration"></param>
        /// <param name="json"></param>
        /// <returns></returns>
        public bool NeedLogin(HttpContext context, IConfiguration configuration, out string json)
        {
            JwtToken jwtToken = new JwtToken();
            var      request  = context.Request;
            var      secret   = configuration["jwt.secret"];
            var      urls     = configuration["user.auth.urls"];

            var items = JsonConvert.DeserializeObject <string[]>(urls);

            json = "";
            if (items.Any(w => request.Path.Value.Contains(w)))
            {
                if (string.IsNullOrEmpty(request.Headers["token"]))
                {
                    var    token  = jwtToken.EncodeToken(secret);
                    Result result = new Result()
                    {
                        Code = 1, Data = token
                    };
                    json = JsonConvert.SerializeObject(result);
                    return(false);
                }

                var tokenResult = jwtToken.DecodeToken(secret, request.Headers["token"]);
                if (tokenResult.Code != 0)
                {
                    json = JsonConvert.SerializeObject(tokenResult);
                    return(false);
                }
            }
            return(true);
        }