using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.OAuth; using Microsoft.AspNetCore.Http; using System.Security.Claims; namespace Discord.OAuth2 { /// Configuration options for . public class DiscordOptions : OAuthOptions { /// Initializes a new . public DiscordOptions() { CallbackPath = new PathString("/signin-discord"); AuthorizationEndpoint = DiscordDefaults.AuthorizationEndpoint; TokenEndpoint = DiscordDefaults.TokenEndpoint; UserInformationEndpoint = DiscordDefaults.UserInformationEndpoint; Scope.Add("identify"); ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id", ClaimValueTypes.UInteger64); ClaimActions.MapJsonKey(ClaimTypes.Name, "username", ClaimValueTypes.String); ClaimActions.MapJsonKey(ClaimTypes.Email, "email", ClaimValueTypes.Email); ClaimActions.MapJsonKey("urn:discord:discriminator", "discriminator", ClaimValueTypes.UInteger32); ClaimActions.MapJsonKey("urn:discord:avatar", "avatar", ClaimValueTypes.String); ClaimActions.MapJsonKey("urn:discord:verified", "verified", ClaimValueTypes.Boolean); } /// Gets or sets the Discord-assigned appId. public string AppId { get => ClientId; set => ClientId = value; } /// Gets or sets the Discord-assigned app secret. public string AppSecret { get => ClientSecret; set => ClientSecret = value; } } }