From ddd56b7fc0fab02f5b4358ad73687b3338eba641 Mon Sep 17 00:00:00 2001 From: edobbsskylark <116915471+edobbsskylark@users.noreply.github.com> Date: Tue, 1 Nov 2022 15:22:13 -0500 Subject: [PATCH] Token issues While following this page and using it a lot while learning APIs, I had an issue where every request I was making to my client, it would reach out to get a new token. I assume this is not intended, and this was my fix for it. The local variable 'token' in the GetAuthenticationParameter function doesn't live outside of this and there for the obtained bearer token is never saved to the client object. I just forced the gettoken function to save to the Token variable that is in AuthenticatorBase. Please let me know if I am missing something as I would love to learn! I do figure that this does not take into account "what if the bearer token expires?" And to be honest I have no clue how this is handled! I plan on doing some checks if the request comes back with unauthorized, to get a new token, but if you have ideas or know of better ways to handle bearer tokens expiring please let me know! I am new to working with APIs. --- docs/usage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index d19374204..a6857a287 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -48,8 +48,8 @@ public class TwitterAuthenticator : AuthenticatorBase { } protected override async ValueTask GetAuthenticationParameter(string accessToken) { - var token = string.IsNullOrEmpty(Token) ? await GetToken() : Token; - return new HeaderParameter(KnownHeaders.Authorization, token); + Token = string.IsNullOrEmpty(Token) ? await GetToken() : Token; + return new HeaderParameter(KnownHeaders.Authorization, Token); } } ```