You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

56 lines
1.7 KiB

  1. @inherits LayoutComponentBase
  2. @using Components
  3. @using Newtonsoft.Json
  4. @using Models.Identity
  5. @inject ILoadingSpinner _LoadingSpinner
  6. <RoundContainerContainer Padding="0" BackroundImage="true">
  7. @Body
  8. </RoundContainerContainer>
  9. @code
  10. {
  11. protected override async void OnAfterRender(bool firstRender)
  12. {
  13. if (firstRender)
  14. await CheckLogin();
  15. base.OnAfterRender(firstRender);
  16. }
  17. async Task CheckLogin()
  18. {
  19. Console.WriteLine("" + Statics.LastCheck);
  20. Console.WriteLine("checking login...");
  21. Statics.LastCheck = DateTime.Now;
  22. var hasToken = await LocalStorage.ContainKeyAsync(Statics.LoginTokenKey);
  23. if (hasToken)
  24. {
  25. var token = await LocalStorage.GetItemAsStringAsync(Statics.LoginTokenKey);
  26. var res = await _userUtils.CheckLogin(goToLogin: false);
  27. if (res.IsSuccessStatusCode)
  28. {
  29. var result =
  30. JsonConvert.DeserializeObject<CheckLoginResponse>(
  31. await res.Content.ReadAsStringAsync());
  32. await _LoadingSpinner.HideLoading();
  33. Statics.CurrentLoginInfo = result;
  34. if (!result.HasName)
  35. NavManager.NavigateTo("/NameAndEmail");
  36. else
  37. NavManager.NavigateTo("/dashboard");
  38. }
  39. await _LoadingSpinner.HideLoading();
  40. StateHasChanged();
  41. }
  42. }
  43. private async void SignOut()
  44. {
  45. await LocalStorage.RemoveItemAsync(Statics.LoginTokenKey);
  46. await LocalStorage.RemoveItemAsync(Statics.RefreshTokenKey);
  47. NavManager.NavigateTo("/login");
  48. }
  49. }