Autoryzacja nie działa, JWT Bearer

Autoryzacja nie działa, JWT Bearer
EL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
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

SW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 250
1

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

PS Przed ReadAsStringAsync brak await.

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
1

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

EL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

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

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
1

Ty odpytujesz swoje API swoim API?

SW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 250
0

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

EL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
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.

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
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?

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5227
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?~~~

EL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

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

SW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 250
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.

EL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

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

piotrpo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3303
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.

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5227
2

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

Kopiuj
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;
	};
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.