コード例 #1
0
 public WeatherForecastController(GenericJwtToken genericJwtToken, TestService testService,
                                  ILogger <WeatherForecastController> _logger)
 {
     this.genericJwtToken = genericJwtToken;
     this.testService     = testService;
     this._logger         = _logger;
 }
コード例 #2
0
        public GenericJwtToken Login([FromBody] LoginRequest loginRequest)
        {
            var found = mongoContext.Collection <User>()
                        .AsQueryable()
                        .Where(u => u._id == loginRequest.Username && u.PasswordHash == loginRequest.PasswordHash)
                        .FirstOrDefault();

            if (found == null)
            {
                return(new GenericJwtToken()
                {
                    Valid = false,
                    Roles = new List <RoleEnum>()
                });
            }

            var token = new GenericJwtToken()
            {
                Id           = found._id,
                Roles        = found.Roles,
                Valid        = true,
                Name         = found.Name,
                ExpiringDate = DateTime.Now.AddDays(authOptions.TokenExpiringDays)
            };

            // token.Token = jwtObjectEncoder.Encode(token);
            token = Response.WriteJWTCookie(token);
            return(token);
        }
コード例 #3
0
 public UserController(
     JwtObjectEncoder jwtObjectEncoder,
     GenericJwtToken genericJwtToken,
     AuthOptions authOptions,
     MongoContext mongoContext
     )
 {
     this.jwtObjectEncoder = jwtObjectEncoder;
     this.genericJwtToken  = genericJwtToken;
     this.authOptions      = authOptions;
     this.mongoContext     = mongoContext;
 }
コード例 #4
0
        public IActionResult Login([FromBody] LoginUser input)
        {
            //throw new Exception("我是一个异常");
            //从数据库验证用户名,密码
            //验证通过 否则 返回Unauthorized
            var jwtToken = new GenericJwtToken
            {
                Uid      = 1,
                UserName = input.Username,
                Expires  = DateTime.Now.AddHours(2)
            };

            //返回token和过期时间
            return(ApiSuccess(new { jwtToken = AuthJwtEncoder.Encode(jwtToken), jwtToken.Expires }));
        }
コード例 #5
0
        public static GenericJwtToken WriteJWTCookie(this HttpResponse response, GenericJwtToken token)
        {
            token.Valid = true;
            var jwtEncoder = Startup.ApplicationContainer.Resolve <JwtObjectEncoder>();

            token.Token = jwtEncoder.Encode(token);
            AuthOptions authOptions = Startup.ApplicationContainer.Resolve <AuthOptions>();

            response.Cookies.Append(authOptions.JWTCookieKey, token.Token, new CookieOptions()
            {
                HttpOnly = true,
                Expires  = DateTime.Now.AddDays(authOptions.TokenExpiringDays)
            });
            return(token);
        }