updated service to save and delete json token
This commit is contained in:
parent
f70d3e9994
commit
fba938fa2c
@ -8,6 +8,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Blazor-ApexCharts" Version="0.9.20-beta" />
|
||||
<PackageReference Include="Blazored.LocalStorage" Version="4.3.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.2" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Web;
|
||||
using PanoptesFrontend.Services;
|
||||
using Blazored.LocalStorage;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
@ -8,8 +9,9 @@ var builder = WebApplication.CreateBuilder(args);
|
||||
builder.Services.AddRazorPages();
|
||||
builder.Services.AddServerSideBlazor();
|
||||
builder.Services.AddHttpClient();
|
||||
builder.Services.AddSingleton<IHttpService, HttpService>();
|
||||
builder.Services.AddSingleton<IAccountService, AccountService>();
|
||||
builder.Services.AddScoped<IHttpService, HttpService>();
|
||||
builder.Services.AddScoped<IAccountService, AccountService>();
|
||||
builder.Services.AddBlazoredLocalStorage();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
using PanoptesFrontend.Data.Account;
|
||||
using PanoptesFrontend.Data;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Blazored.LocalStorage;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace PanoptesFrontend.Services;
|
||||
|
||||
@ -17,24 +16,30 @@ public interface IAccountService
|
||||
public class AccountService : IAccountService
|
||||
{
|
||||
private IHttpService httpService;
|
||||
private ILocalStorageService localStorage;
|
||||
|
||||
public AccountService(IHttpService httpService) {
|
||||
public AccountService(IHttpService httpService, ILocalStorageService localStorage) {
|
||||
this.httpService = httpService;
|
||||
this.localStorage = localStorage;
|
||||
}
|
||||
|
||||
|
||||
public async Task Register(AddUser model){
|
||||
// endpoint doesnt exist yet
|
||||
await httpService.PostAsync("http://localhost:10000/user/register", model);
|
||||
}
|
||||
|
||||
public async Task Login(LoginUser model){
|
||||
// endpoint doesnt exist yet
|
||||
await httpService.PostAsync("http://localhost:10000/user/login", model);
|
||||
var response = await httpService.PostAsync("http://localhost:10000/user/login", model);
|
||||
|
||||
var jsonDoc = JsonDocument.Parse(response);
|
||||
var token = jsonDoc.RootElement.GetProperty("token").GetString();
|
||||
|
||||
// Save the JWT token to local storage
|
||||
await localStorage.SetItemAsync("authToken", token);
|
||||
}
|
||||
|
||||
public async Task Logout(User model){
|
||||
// endpoint doesnt exist yet
|
||||
await httpService.PostAsync("http://localhost:10000/user/logout", model);
|
||||
await localStorage.RemoveItemAsync("authToken");
|
||||
}
|
||||
}
|
||||
@ -8,7 +8,7 @@ using System.Text.Json;
|
||||
public interface IHttpService
|
||||
{
|
||||
Task<T> GetAsync<T>(string endpoint);
|
||||
Task<HttpStatusCode> PostAsync(string endpoint, object value);
|
||||
Task<string> PostAsync(string endpoint, object value);
|
||||
}
|
||||
|
||||
public class HttpService : IHttpService {
|
||||
@ -32,11 +32,9 @@ public class HttpService : IHttpService {
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<HttpStatusCode> PostAsync(string endpoint, object value){
|
||||
var request = await httpClient.PostAsJsonAsync(endpoint, value);
|
||||
|
||||
request.EnsureSuccessStatusCode();
|
||||
|
||||
return request.StatusCode;
|
||||
public async Task<string> PostAsync(string endpoint, object value){
|
||||
var response = await httpClient.PostAsJsonAsync(endpoint, value);
|
||||
response.EnsureSuccessStatusCode();
|
||||
return await response.Content.ReadAsStringAsync();
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user