From 2ec1ed72b0bc909df7ad68f2cf1bc09f7b11c075 Mon Sep 17 00:00:00 2001 From: emorell96 Date: Tue, 23 Mar 2021 22:23:19 -0700 Subject: [PATCH] added showcasing for the refresh token methods. --- .../Pages/Index.razor | 13 ++++++- .../Pages/Index.razor.cs | 39 +++++++++++++++---- 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/samples/05_simple_blazor_discord_login/Pages/Index.razor b/samples/05_simple_blazor_discord_login/Pages/Index.razor index 359b62169..cc68ae247 100644 --- a/samples/05_simple_blazor_discord_login/Pages/Index.razor +++ b/samples/05_simple_blazor_discord_login/Pages/Index.razor @@ -1,5 +1,5 @@ @page "/" - +@namespace _04_simple_blazor_discord_login.Pages

Hello!

Navigate to /#access_token=real_access and test me. @@ -20,5 +20,16 @@ Make sure you change the response_type from response_type=code to response_type= @User.Status + @if(RestToken != null){ +
+
+ Token: @RestToken.Token +
+
+ Refresh Token: @RestToken.RefreshToken +
+
+} } + diff --git a/samples/05_simple_blazor_discord_login/Pages/Index.razor.cs b/samples/05_simple_blazor_discord_login/Pages/Index.razor.cs index 512f94aff..a90635206 100644 --- a/samples/05_simple_blazor_discord_login/Pages/Index.razor.cs +++ b/samples/05_simple_blazor_discord_login/Pages/Index.razor.cs @@ -17,19 +17,42 @@ namespace _04_simple_blazor_discord_login.Pages [Inject] private NavigationManager navigationManager { get; set; } public RestSelfUser User { get; set; } + public RestToken RestToken { get; set; } protected override async Task OnInitializedAsync() { - var uri = navigationManager.ToAbsoluteUri(navigationManager.Uri); - var uri_query = uri.Query; - //?access_token = RTfP0OK99U3kbRtHOoKLmJbOn45PjL & token_type = Bearer & expires_in = 604800 & scope = identify & state = 15773059ghq9183habn - if (QueryHelpers.ParseQuery(uri.Fragment.TrimStart('#')).TryGetValue("access_token", out var token)) + + } + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) { - - await DiscordRestClient.LoginAsync(TokenType.Bearer, token); - User = DiscordRestClient.CurrentUser; - StateHasChanged(); + var uri = navigationManager.ToAbsoluteUri(navigationManager.Uri); + var uri_query = uri.Query; + //?access_token = RTfP0OK99U3kbRtHOjjLmjbOn45PjL & token_type = Bearer & expires_in = 604800 & scope = identify & state = 15773059ghq9183habn + if (QueryHelpers.ParseQuery(uri.Fragment.TrimStart('#')).TryGetValue("access_token", out var token)) + { + + await DiscordRestClient.LoginAsync(TokenType.Bearer, token); //this can give you an exception if the token is expired! + User = DiscordRestClient.CurrentUser; + StateHasChanged(); + } + if (QueryHelpers.ParseQuery(uri.Query.TrimStart('?')).TryGetValue("code", out var code)) + { + RestToken = await DiscordRestClient.GetTokenAsync(TokenType.Code, code, navigationManager.BaseUri, new List { "identify" }); //this can give you an exception if the token is expired! + await DiscordRestClient.LoginAsync(TokenType.Bearer, RestToken.Token); + User = DiscordRestClient.CurrentUser; + StateHasChanged(); + } + if (QueryHelpers.ParseQuery(uri.Query.TrimStart('?')).TryGetValue("refresh_token", out var refreshToken)) + { + RestToken = await DiscordRestClient.GetTokenAsync(TokenType.Refresh, refreshToken, navigationManager.BaseUri, new List { "identify" }); //this can give you an exception if the token is expired! + await DiscordRestClient.LoginAsync(TokenType.Bearer, RestToken.Token); + User = DiscordRestClient.CurrentUser; + StateHasChanged(); + } } + }