Browse Source

added showcasing for the refresh token methods.

pull/1806/head
emorell96 4 years ago
parent
commit
2ec1ed72b0
2 changed files with 43 additions and 9 deletions
  1. +12
    -1
      samples/05_simple_blazor_discord_login/Pages/Index.razor
  2. +31
    -8
      samples/05_simple_blazor_discord_login/Pages/Index.razor.cs

+ 12
- 1
samples/05_simple_blazor_discord_login/Pages/Index.razor View File

@@ -1,5 +1,5 @@
@page "/"
@namespace _04_simple_blazor_discord_login.Pages
<h1>Hello!</h1>

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
</div>
</div>
@if(RestToken != null){
<div class="card-body">
<div class="card-text">
Token: @RestToken.Token
</div>
<div class="card-text">
Refresh Token: @RestToken.RefreshToken
</div>
</div>
}
</div>}



+ 31
- 8
samples/05_simple_blazor_discord_login/Pages/Index.razor.cs View File

@@ -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<string> { "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<string> { "identify" }); //this can give you an exception if the token is expired!
await DiscordRestClient.LoginAsync(TokenType.Bearer, RestToken.Token);
User = DiscordRestClient.CurrentUser;
StateHasChanged();
}
}
}




Loading…
Cancel
Save