From d0012833e3588b660ee64103f6278de3f8490d8a Mon Sep 17 00:00:00 2001 From: ferhat elmas Date: Thu, 4 Feb 2021 15:11:10 +0100 Subject: [PATCH] Drop session from token --- src/stream-net-tests/ClientTests.cs | 6 +++--- src/stream-net/IStreamClient.cs | 2 +- src/stream-net/StreamClient.cs | 12 ++++++------ src/stream-net/StreamClientToken.cs | 26 +++++++++++++------------- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/stream-net-tests/ClientTests.cs b/src/stream-net-tests/ClientTests.cs index b542e99..5993d53 100644 --- a/src/stream-net-tests/ClientTests.cs +++ b/src/stream-net-tests/ClientTests.cs @@ -109,9 +109,9 @@ public void TestActivityPartialUpdateArgumentValidation() } [Test] - public void TestSessionToken() + public void TestToken() { - var tokenString = _client.CreateUserSessionToken("user"); + var tokenString = _client.CreateUserToken("user"); var tok = new JWTSecurityToken(tokenString); object actualUserID; Assert.True(tok.Payload.TryGetValue("user_id", out actualUserID)); @@ -122,7 +122,7 @@ public void TestSessionToken() {"client","dotnet"}, {"testing", true} }; - tokenString = _client.CreateUserSessionToken("user2", extra); + tokenString = _client.CreateUserToken("user2", extra); tok = new JWTSecurityToken(tokenString); object data; diff --git a/src/stream-net/IStreamClient.cs b/src/stream-net/IStreamClient.cs index 0efd4d8..25fbcfd 100644 --- a/src/stream-net/IStreamClient.cs +++ b/src/stream-net/IStreamClient.cs @@ -14,6 +14,6 @@ public interface IStreamClient Task ActivityPartialUpdate(string id = null, ForeignIDTime foreignIDTime = null, GenericData set = null, IEnumerable unset = null); IStreamFeed Feed(string feedSlug, string userId); - string CreateUserSessionToken(string userId, IDictionary extraData = null); + string CreateUserToken(string userId, IDictionary extraData = null); } } diff --git a/src/stream-net/StreamClient.cs b/src/stream-net/StreamClient.cs index e30c754..37e32d3 100644 --- a/src/stream-net/StreamClient.cs +++ b/src/stream-net/StreamClient.cs @@ -29,7 +29,7 @@ public class StreamClient : IStreamClient readonly RestClient _client; readonly StreamClientOptions _options; - readonly IStreamClientToken _streamClientToken; + readonly IToken _streamClientToken; readonly string _apiKey; public StreamClient(string apiKey, string apiSecretOrToken, StreamClientOptions options = null) @@ -40,12 +40,12 @@ public StreamClient(string apiKey, string apiSecretOrToken, StreamClientOptions throw new ArgumentNullException("apiSecret", "Must have an apiSecret or user session token"); _apiKey = apiKey; - _streamClientToken = StreamClientToken.For(apiSecretOrToken); + _streamClientToken = TokenFactory.For(apiSecretOrToken); _options = options ?? StreamClientOptions.Default; _client = new RestClient(GetBaseUrl(_options.Location), TimeSpan.FromMilliseconds(_options.Timeout)); } - private StreamClient(string apiKey, IStreamClientToken streamClientToken, RestClient client, StreamClientOptions options = null) + private StreamClient(string apiKey, IToken streamClientToken, RestClient client, StreamClientOptions options = null) { if (string.IsNullOrWhiteSpace(apiKey)) throw new ArgumentNullException("apiKey", "Must have an apiKey"); @@ -93,9 +93,9 @@ public async Task ActivityPartialUpdate(string id = null, ForeignIDTime foreignI await this.Batch.ActivitiesPartialUpdate(new ActivityPartialUpdateRequestObject[] { update }); } - public string CreateUserSessionToken(string userId, IDictionary extraData = null) + public string CreateUserToken(string userId, IDictionary extraData = null) { - return _streamClientToken.CreateUserSessionToken(userId, extraData); + return _streamClientToken.CreateUserToken(userId, extraData); } /// @@ -174,7 +174,7 @@ private RestRequest BuildRestRequest(string fullPath, HttpMethod method, string var request = new RestRequest(fullPath, method); request.AddHeader("Authorization", JWToken("*", userID)); request.AddHeader("Stream-Auth-Type", "jwt"); - request.AddHeader("X-Stream-Client", "stream-net-"+Version); + request.AddHeader("X-Stream-Client", "stream-net-" + Version); request.AddQueryParameter("api_key", _apiKey); return request; } diff --git a/src/stream-net/StreamClientToken.cs b/src/stream-net/StreamClientToken.cs index 8da4d26..9a76c49 100644 --- a/src/stream-net/StreamClientToken.cs +++ b/src/stream-net/StreamClientToken.cs @@ -6,35 +6,35 @@ namespace Stream { - public interface IStreamClientToken + public interface IToken { - string CreateUserSessionToken(string userId, IDictionary extraData = null); + string CreateUserToken(string userId, IDictionary extraData = null); string For(object payload); } - public static class StreamClientToken + public static class TokenFactory { - public static IStreamClientToken For(string apiSecretOrToken) + public static IToken For(string apiSecretOrToken) { return apiSecretOrToken.Contains(".") - ? (IStreamClientToken) new StreamApiSessionToken(apiSecretOrToken) - : (IStreamClientToken) new StreamApiSecret(apiSecretOrToken); + ? (IToken)new Token(apiSecretOrToken) + : (IToken)new Secret(apiSecretOrToken); } } - public class StreamApiSessionToken : IStreamClientToken + public class Token : IToken { private readonly string _sessionToken; - public StreamApiSessionToken(string sessionToken) + public Token(string sessionToken) { _sessionToken = sessionToken; } - public string CreateUserSessionToken(string userId, IDictionary extraData = null) + public string CreateUserToken(string userId, IDictionary extraData = null) { - throw new InvalidOperationException("Clients connecting using a user session token cannot create additional user session tokens"); + throw new InvalidOperationException("Clients connecting using a user token cannot create additional user tokens"); } public string For(object payload) @@ -43,11 +43,11 @@ public string For(object payload) } } - public class StreamApiSecret : IStreamClientToken + public class Secret : IToken { private readonly string _apiSecret; - public StreamApiSecret(string apiSecret) + public Secret(string apiSecret) { _apiSecret = apiSecret; } @@ -60,7 +60,7 @@ private static string Base64UrlEncode(byte[] input) .Trim('='); } - public string CreateUserSessionToken(string userId, IDictionary extraData = null) + public string CreateUserToken(string userId, IDictionary extraData = null) { var payload = new Dictionary {