Remove state

This commit is contained in:
x3rt
2023-05-03 16:12:59 -06:00
parent d11f837f0a
commit 4b2a1c5d6f
2 changed files with 4 additions and 12 deletions

View File

@@ -21,7 +21,6 @@ public class DiscordOAuth
private ScopesBuilder Scopes { get; set; } private ScopesBuilder Scopes { get; set; }
private string? AccessToken { get; set; } private string? AccessToken { get; set; }
public string State { get; }
public static void Configure(ulong clientId, string clientSecret, string? botToken = null) public static void Configure(ulong clientId, string clientSecret, string? botToken = null)
{ {
@@ -32,22 +31,21 @@ public class DiscordOAuth
private readonly HttpClient _httpClient = new HttpClient(); private readonly HttpClient _httpClient = new HttpClient();
public DiscordOAuth(string redirectUri, ScopesBuilder scopes, string state, bool prompt = true) public DiscordOAuth(string redirectUri, ScopesBuilder scopes, bool prompt = true)
{ {
RedirectUri = redirectUri; RedirectUri = redirectUri;
Scopes = scopes; Scopes = scopes;
Prompt = prompt; Prompt = prompt;
State = state;
} }
public string GetAuthorizationUrl() public string GetAuthorizationUrl(string state)
{ {
NameValueCollection query = HttpUtility.ParseQueryString(string.Empty); NameValueCollection query = HttpUtility.ParseQueryString(string.Empty);
query["client_id"] = ClientId.ToString(); query["client_id"] = ClientId.ToString();
query["redirect_uri"] = RedirectUri; query["redirect_uri"] = RedirectUri;
query["response_type"] = "code"; query["response_type"] = "code";
query["scope"] = Scopes.ToString(); query["scope"] = Scopes.ToString();
query["state"] = State; query["state"] = state;
query["prompt"] = Prompt ? "consent" : "none"; query["prompt"] = Prompt ? "consent" : "none";
var uriBuilder = new UriBuilder("https://discord.com/api/oauth2/authorize") var uriBuilder = new UriBuilder("https://discord.com/api/oauth2/authorize")
@@ -96,12 +94,6 @@ public class DiscordOAuth
return authToken; return authToken;
} }
public bool ValidateState(HttpContext context)
{
var givenState = context.Request.Query["state"];
return givenState == State;
}
private async Task<T?> GetInformationAsync<T>(string accessToken, string endpoint) where T : class private async Task<T?> GetInformationAsync<T>(string accessToken, string endpoint) where T : class
{ {
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

View File

@@ -17,7 +17,7 @@
<RepositoryType>GIT</RepositoryType> <RepositoryType>GIT</RepositoryType>
<PackageTags>Discord-OAuth2;Discord-OAuth-2;Discord-OAuth;DiscordOAuth;Discord;OAuth;OAuth-2;OAuth2</PackageTags> <PackageTags>Discord-OAuth2;Discord-OAuth-2;Discord-OAuth;DiscordOAuth;Discord;OAuth;OAuth-2;OAuth2</PackageTags>
<Deterministic>true</Deterministic> <Deterministic>true</Deterministic>
<Version>1.0.3</Version> <Version>1.0.4</Version>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>