Autoryzacja nie działa, JWT Bearer

0

Co powinienem zrobić dalej z tokenem aby mieć dostęp do stron z atrybutem [Authorize] ?
Korzystam z ASP.NET Core 3.1
screenshot-20210422173641.png
screenshot-20210422173710.png

1

Przekazać go do nagłówka żądania, domyślnie Bearer, które wysyłasz.

PS Przed ReadAsStringAsync brak await.

1

Twój request do API powinien posiadać Authorize Header, w którym podajesz wartość Bearer {token} (oczywiście bez { })

0

screenshot-20210422190957.png
Dodałem wartość "bearer "+{token} i nadal nic :(

1

Ty odpytujesz swoje API swoim API?

0

Powiedz może szerzej co chcesz zrobić, bo wygląda na to, że coś dziwnego.

0

Napisałem przykładową metodę w moim API która zwraca token screenshot-20210422193526.png
I teraz z drugiej aplikacji MVC chcę za pomocą tokenu dostać się do kontrolera który ma atrybut [Authorize] gdzie dodam tego użytkownika do widoku.

0

Ale zapytanie o token nie może być z [Authorize]. Taki endpoint w API musi być "publiczny". Jak niby masz zamiar taki token pozyskać nie mając tokenu? Twoim problemem nie jest token, czy jego brak tylko jaki błąd dostajesz 🤔 Co nie działa? Dostajesz 401?

0

@AdamWox: przecież on nie ma [Authorize] w login

@elopadre

~~Oczywiście ta druga aplikacja zna sekret?, a czy przypadkiem walidacja Issuera tu nie powoduje jakichś zgrzytów?~~~

0

Wywala błąd 401. Token normalnie mam juz w drugiej aplikacji w MVC w której jest problem.

0

Druga aplikacja, aby poprawnie zweryfikować token, powinna znać konfigurację do dekodowania (np. sekret). Ponadto, jak robisz MVC, to powinieneś mieć w widoku JavaScript, który przechowa Ci token na froncie, a potem doda Ci do do nagłówków żądania.

0

Jeżeli chodzi ci o AccessTokenSecret to jest podany. screenshot-20210422194724.png

0

Weź sobie jakiegoś Postmana, czy inną Insomnię i sprawdź czy ten flow działa. Tutaj możesz sobie sprawdzić co zawiera sam token https://jwt.io Jak token wygląda na taki ok, to jest jeszcze szansa, że zepsute jest jego sprawdzenie na endpoincie do którego uderzasz.

2

Możesz dopisać sobie logowanie dlaczego JWT nie przeszło

services
	.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
	.AddJwtBearer(o => ConfigureJwtBearerOptions(o));
	
private static void ConfigureJwtBearerOptions(JwtBearerOptions options)
{
	...
	options.Events.OnAuthenticationFailed = c =>
	{
		Console.WriteLine(c.Exception.ToString());
		return Task.CompletedTask;
	};
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1