public IActionResult CheckToken(string token) { JudgePayload payload; try { payload = JWTJudgeProvider.DecodeToken(token); } catch (Exception) { return(Ok("Invalid")); } if (payload.Expires <= DateTime.Now) { return(Ok("Expired")); } var tokens = JWTJudgeFactory.GetAllTokensForJudge(payload.JudgeId); if (tokens.Any(t => t == token)) { return(Ok("Valid")); } return(Ok("Invalid")); }
public IActionResult Authorize(string judgeId, string pass, string serviceId) { var currentTour = (from ct in _dbContext.CurrentTour select ct.Current).Last(); switch (currentTour) { case 0: var getJudgeCv = from judge in _dbContext.JudgesCv where judge.JudgeId == judgeId select judge; if (!getJudgeCv.Any()) { return(BadRequest("User not found")); } var judgeCv = getJudgeCv.First(); if (!judgeCv.PassHash.Equals(pass)) { return(BadRequest("Incorrect password")); } var payloadCv = JudgePayload.Create(judgeCv, 0, serviceId); var serviceCv = (from service in _dbContext.Services where service.ServiceId == payloadCv.Service select service).FirstOrDefault(); if (serviceCv == null) { return(BadRequest("Unknown service")); } var tokenCv = JWTJudgeProvider.CreateToken(payloadCv); JWTJudgeFactory.AddToken(judgeCv.JudgeId, tokenCv, true); return(Ok(tokenCv)); case 1: var getJudgeFin = from judge in _dbContext.JudgesFin where judge.JudgeId == judgeId select judge; if (!getJudgeFin.Any()) { return(BadRequest("User not found")); } var judgeFin = getJudgeFin.First(); if (!judgeFin.PassHash.Equals(pass)) { return(BadRequest("Incorrect password")); } var payloadFin = JudgePayload.Create(judgeFin, 1, serviceId); var tokenFin = JWTJudgeProvider.CreateToken(payloadFin); JWTJudgeFactory.AddToken(judgeFin.JudgeId, tokenFin, true); return(Ok(tokenFin)); default: return(BadRequest("Server error")); } }