| File: Helpers\Jwt.cs | Web Access |
| Project: src\aspnetcore\src\Tools\dotnet-user-jwts\src\dotnet-user-jwts.csproj (dotnet-user-jwts) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.IdentityModel.Tokens.Jwt; using System.Linq; namespace Microsoft.AspNetCore.Authentication.JwtBearer.Tools; public record Jwt(string Id, string Scheme, string Name, string Audience, DateTimeOffset NotBefore, DateTimeOffset Expires, DateTimeOffset Issued, string Token) { public IEnumerable<string> Scopes { get; set; } = new List<string>(); public IEnumerable<string> Roles { get; set; } = new List<string>(); public IDictionary<string, string> CustomClaims { get; set; } = new Dictionary<string, string>(); public override string ToString() => Token; public static Jwt Create( string scheme, JwtSecurityToken token, string encodedToken, IEnumerable<string> scopes = null, IEnumerable<string> roles = null, IDictionary<string, string> customClaims = null) { return new Jwt(token.Id, scheme, token.Subject, string.Join(", ", token.Audiences), token.ValidFrom, token.ValidTo, token.IssuedAt, encodedToken) { Scopes = scopes, Roles = roles, CustomClaims = customClaims }; } }