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; }
}
}