aboutsummaryrefslogtreecommitdiff
path: root/plugins/VNLib.Plugins.Essentials.SocialOauth/src/ClientAccessTokenState.cs
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-03-09 01:48:39 -0500
committerLibravatar vnugent <public@vaughnnugent.com>2023-03-09 01:48:39 -0500
commit03f3226ea055dca3565bb859437624ef04a236fd (patch)
treec3aae503ae9b459a6fcaf9a18891d11ee8e1d1d8 /plugins/VNLib.Plugins.Essentials.SocialOauth/src/ClientAccessTokenState.cs
parent0e78874a09767aa53122a7242a8da7021020c1a2 (diff)
Omega cache, session, and account provider complete overhaul
Diffstat (limited to 'plugins/VNLib.Plugins.Essentials.SocialOauth/src/ClientAccessTokenState.cs')
-rw-r--r--plugins/VNLib.Plugins.Essentials.SocialOauth/src/ClientAccessTokenState.cs47
1 files changed, 5 insertions, 42 deletions
diff --git a/plugins/VNLib.Plugins.Essentials.SocialOauth/src/ClientAccessTokenState.cs b/plugins/VNLib.Plugins.Essentials.SocialOauth/src/ClientAccessTokenState.cs
index 8a7aea3..18f4081 100644
--- a/plugins/VNLib.Plugins.Essentials.SocialOauth/src/ClientAccessTokenState.cs
+++ b/plugins/VNLib.Plugins.Essentials.SocialOauth/src/ClientAccessTokenState.cs
@@ -1,12 +1,12 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2023 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Essentials.SocialOauth
-* File: ClientAccessTokenState.cs
+* File: OAuthAccessState.cs
*
-* ClientAccessTokenState.cs is part of VNLib.Plugins.Essentials.SocialOauth which is part of the larger
-* VNLib collection of libraries and utilities.
+* OAuthAccessState.cs is part of VNLib.Plugins.Essentials.SocialOauth which
+* is part of the larger VNLib collection of libraries and utilities.
*
* VNLib.Plugins.Essentials.SocialOauth is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -23,17 +23,11 @@
*/
using System;
-using System.Security.Cryptography;
using System.Text.Json.Serialization;
-using VNLib.Hashing;
-using VNLib.Utils.Memory;
-using VNLib.Utils.Memory.Caching;
-using VNLib.Plugins.Essentials.Accounts;
-
namespace VNLib.Plugins.Essentials.SocialOauth
{
- public sealed class OAuthAccessState : IOAuthAccessState, ICacheable, INonce
+ public sealed class OAuthAccessState : IOAuthAccessState
{
///<inheritdoc/>
[JsonPropertyName("access_token")]
@@ -50,36 +44,5 @@ namespace VNLib.Plugins.Essentials.SocialOauth
///<inheritdoc/>
[JsonPropertyName("id_token")]
public string? IdToken { get; set; }
-
- //Ignore the public key and client ids
- [JsonIgnore]
- internal string? PublicKey { get; set; }
- [JsonIgnore]
- internal string? ClientId { get; set; }
-
- /// <summary>
- /// A random nonce generated when the access state is created and
- /// deleted when then access token is evicted.
- /// </summary>
- [JsonIgnore]
- internal ReadOnlyMemory<byte> Nonce { get; private set; }
-
- DateTime ICacheable.Expires { get; set; }
- bool IEquatable<ICacheable>.Equals(ICacheable? other) => GetHashCode() == other?.GetHashCode();
- public override int GetHashCode() => Token!.GetHashCode(StringComparison.Ordinal);
- void ICacheable.Evicted()
- {
- MemoryUtil.UnsafeZeroMemory(Nonce);
- }
-
- void INonce.ComputeNonce(Span<byte> buffer)
- {
- //Compute nonce
- RandomHash.GetRandomBytes(buffer);
- //Copy and store
- Nonce = buffer.ToArray();
- }
-
- bool INonce.VerifyNonce(ReadOnlySpan<byte> nonceBytes) => CryptographicOperations.FixedTimeEquals(Nonce.Span, nonceBytes);
}
} \ No newline at end of file