Wie kann ich eine JWT Token übergeben und auf einen anderen View von einem anderem Controller verweisen?

2 Antworten

Leider bekomme ich es nicht hin einen jwt token zu übergeben (...)

Bei einem Request würde der Token im Authorization-Header übergeben werden.

Beispiel mit JavaScript:

fetch("/yourRequestHandler", { headers: { Authentication: `Bearer ${token}` }});

Nach Vergabe des Tokens durch den Server wäre es allerdings einfacher, den Token in einem Cookie abzuspeichern. Auf den hat der Server in Folgeanfragen ebenso Zugriff.

Die Middleware, die ASP.NET für die Autorisierung zur Verfügung stellt, kann dafür auch konfiguriert werden. Dieser Artikel von Kasey Bohn oder der Medium-Artikel von Alim Özdemir zeigen, wie es geht.

Falls dir diese Middleware-Implementation noch gänzlich unbekannt ist, können diese Artikel weiterhelfen:

(...) dabei auf ein anderen View von einem anderen Controller verweisen. (...)

Es gibt die RedirectToAction-Methode, mit der du eine Action eines anderen Controllers aufrufen kannst.

Wenn du nur das View-Template benötigst, musst du einen anderen Pfad in der View-Methode angeben.

Beispiel:

return View("~/Views/Other/Index.cshtml", yourModel);

Wobei ein View-Template, welches von mehreren Controller Actions verwendet wird, meines Erachtens eher in einen Shared-Ordner gehört.

Also ich kenne deinen Code nicht und verstehe dein genaues Problem auch nicht wirklich.

Ich mache meine Authentication immer in etwa so:

Die Login-Daten werden zum Server gesendet, der dann überprüft ob die Daten korrekt sind. Anschließend wird ein JWT-Token erstellt (Refresh-Token) und als Cookie zum Client geschickt. Der Client empfängt den Token und verwendet ihn um bei einem Endpoint über Request-Response einen weiteren JWT-Token (Access-Token) der dann im Client im Local-Storage gespeichert wird.
Der Client nutzt dann diesen Token im Local-Storage als Authorization-Header um auf die API zuzugreifen.

Bei der Weiterleitung bzw. dem Wechseln der View kann ich dir aber leider nicht helfen - Kann dir aber als Tipp geben mal ChatGPT (Bing-AI) zu fragen.

Hoffe meine Antwort hat dir doch irgendwie geholfen

Woher ich das weiß:Hobby – Interessierter Hobby-Softwareentwickler seit 2016