MVC mit Owin JWT Identity
Ich versuche herauszufinden, wie ich den Anspruch aus meinem Token herausholen kann. Ich werde versuchen, die Erklärung kurz zu halten
Ich habe eine HTML-Seite, die einen Beitrag auf meiner Web-API erstellt, eine Authentifizierungsprüfung durchführt und ein JWT-Token zurückgibt.Wenn ich das Token zurück bekomme, möchte ich es an eine andere URL senden, und die Art und Weise, wie ich es tue, verwendet einen Querystring. Ich weiß, dass ich Cookies verwenden kann, aber für diese App möchten wir sie nicht verwenden. Also, wenn meine URL so aussieht,http://somedomain/checkout/?token=bearer token comes here
Ich benutzeOwin
middleware
und das ist was ich bisher habe
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
Provider = new ApplicationOAuthBearerAuthenticationProvider(),
});
public class ApplicationOAuthBearerAuthenticationProvider
: OAuthBearerAuthenticationProvider
{
public override Task RequestToken(OAuthRequestTokenContext context)
{
if (context == null)
throw new ArgumentNullException("context");
var token = HttpContext.Current.Request.QueryString["token"];
if (!string.IsNullOrEmpty(token))
context.Token = token;
return Task.FromResult<object>(null);
}
}
Aber wie bekomme ich dasClaims
aus demToken
oder einfach das @ überprüfIsAuthenticated
Ich habe folgendes in meinem @ versuccontroller
nur um zu überprüfen, aber dieIsAuthenticated
ist immerfalse
var identity = (ClaimsIdentity) HttpContext.Current.GetOwinContext().Authentication.User.Identity;
if (!identity.IsAuthenticated)
return;
var id = identity.FindFirst(ClaimTypes.NameIdentifier);