public static bool TryParse(string input, out SimpleToken claims) { if (input == null) { claims = null; return(false); } var claimTokens = input.Split("&".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (claimTokens.Any(t => !t.Contains("=")) || claimTokens.Any(string.IsNullOrEmpty)) { claims = null; return(false); } claims = new SimpleToken(claimTokens .Select(t => { var tt = t.Split('='); return(new Claim(tt[0], tt[1])); }) .ToArray()); return(true); }
public string Find(HttpRequest request) { string auth = request.Headers.First(h => h.Key.ToLower() == "authorization").Value; SimpleToken claims; if (SimpleToken.TryParse(auth.ToLower().Replace("bearer", "").Trim(), out claims)) { return(claims.FirstOrDefault(c => c.Key == "user")?.Value); } return(null); }