Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
61f7c0f05e
|
|||
|
20518b8f6a
|
@@ -6,5 +6,6 @@ public class JwtTokenManagerOptions
|
||||
public required string ClientId { get; set; }
|
||||
public required string ClientSecret { get; set; }
|
||||
public IEnumerable<string> Scopes { get; set; } = Array.Empty<string>();
|
||||
public bool IsCredentialsInHeader { get; set; } = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using OpenHarbor.JwtTokenManager.Abstractions;
|
||||
@@ -24,18 +25,32 @@ public class JwtTokenManagerService(JwtTokenManagerOptions options, IHttpClientF
|
||||
}
|
||||
}
|
||||
|
||||
var formContent = new FormUrlEncodedContent([
|
||||
new KeyValuePair<string, string>("grant_type", "client_credentials"),
|
||||
new KeyValuePair<string, string>("client_id", options.ClientId),
|
||||
new KeyValuePair<string, string>("client_secret", options.ClientSecret),
|
||||
new KeyValuePair<string, string>("scopes", string.Join(" ", _scopes))
|
||||
]);
|
||||
var formContentKeyValues = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new ("grant_type", "client_credentials"),
|
||||
new ("scopes", string.Join(" ", _scopes))
|
||||
};
|
||||
|
||||
if (options.IsCredentialsInHeader)
|
||||
{
|
||||
formContentKeyValues.AddRange([
|
||||
new KeyValuePair<string, string>("client_id", options.ClientId),
|
||||
new KeyValuePair<string, string>("client_secret", options.ClientSecret)
|
||||
]);
|
||||
}
|
||||
var formContent = new FormUrlEncodedContent(formContentKeyValues);
|
||||
|
||||
var request = new HttpRequestMessage(HttpMethod.Post, options.TokenEndpoint)
|
||||
{
|
||||
Content = formContent
|
||||
};
|
||||
|
||||
if (false == options.IsCredentialsInHeader)
|
||||
{
|
||||
var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{options.ClientId}:{options.ClientSecret}"));
|
||||
request.Headers.Authorization = new AuthenticationHeaderValue("Basic", credentials);
|
||||
}
|
||||
|
||||
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||
|
||||
var response = await _httpClient.SendAsync(request, cancellationToken);
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
> Install nuget package to your awesome project.
|
||||
|
||||
| Full Version | NuGet | NuGet Install |
|
||||
|-----------------------------------------| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |----------------------------------------------------------------------------:|
|
||||
| OpenHarbor.JwtTokenManager | <a href="https://www.nuget.org/packages/OpenHarbor.JwtTokenManager" target="_blank">[](https://www.nuget.org/packages/OpenHarbor.JwtTokenManager/)</a> | ```PM> Install-Package OpenHarbor.JwtTokenManager``` |
|
||||
| OpenHarbor.JwtTokenManager.Abstractions | <a href="https://www.nuget.org/packages/OpenHarbor.JwtTokenManager.Abstractions" target="_blank">[](https://www.nuget.org/packages/OpenHarbor.JwtTokenManager.Abstractions/)</a> | ```PM> Install-Package OpenHarbor.JwtTokenManager.Abstractions``` |
|
||||
| Package Name | NuGet | NuGet Install |
|
||||
|-----------------------------------------| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |----------------------------------------------------------------------------:|
|
||||
| OpenHarbor.JwtTokenManager | [](https://www.nuget.org/packages/OpenHarbor.JwtTokenManager/) | ```PM> Install-Package OpenHarbor.JwtTokenManager``` |
|
||||
| OpenHarbor.JwtTokenManager.Abstractions | [](https://www.nuget.org/packages/OpenHarbor.JwtTokenManager.Abstractions/) | ```PM> Install-Package OpenHarbor.JwtTokenManager.Abstractions``` |
|
||||
|
||||
# How to use
|
||||
|
||||
|
||||
Reference in New Issue
Block a user