Lieb-Website/Discord.OAuth2/DiscordOptions.cs
2022-02-13 19:54:35 +01:00

33 lines
1.6 KiB
C#

using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.OAuth;
using Microsoft.AspNetCore.Http;
using System.Security.Claims;
namespace Discord.OAuth2
{
/// <summary> Configuration options for <see cref="DiscordHandler"/>. </summary>
public class DiscordOptions : OAuthOptions
{
/// <summary> Initializes a new <see cref="DiscordOptions"/>. </summary>
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);
}
/// <summary> Gets or sets the Discord-assigned appId. </summary>
public string AppId { get => ClientId; set => ClientId = value; }
/// <summary> Gets or sets the Discord-assigned app secret. </summary>
public string AppSecret { get => ClientSecret; set => ClientSecret = value; }
}
}