2017-10-02 2 views
0

Est-il possible d'obtenir un jeton d'accès généré à partir des implémentations IExtensionGrantValidator ou ICustomTokenRequestValidator ou je dois implémenter un autre validateur? Je ne trouve aucune propriété à partir de laquelle je peux obtenir un jeton d'accès.Jeton d'accès IdentityServer4 get

+0

Qu'essayez-vous de faire? Dans quel contexte essayez-vous de récupérer le jeton? –

+0

@ChrisPratt J'ai deux scénarios: 1. J'envoie une requête web au point de terminaison token, où je donne au client quelques revendications supplémentaires, 2. Je redirige du site vers la page de connexion IS4, où je m'authentifie et redirige vers le site. Dans les deux cas, je dois enregistrer les jetons d'accès générés. Je ne trouve aucune information sur la façon dont les jetons d'accès pourraient être obtenus. – developer

Répondre

0

Eh bien, dans le contexte de la récupération initiale d'IdentityServer, le jeton est dans la propriété AccessToken de l'instance TokenResponse retournée. A partir d'une application ASP.NET Core authentifiant via IdentityServer, le fait qu'elle provient d'IdentityServer est sans conséquence. Générallement, pour récupérer un jeton d'accès, vous devez utiliser:

using Microsoft.AspNetCore.Authentication; 

... 

var token = await HttpContext.GetTokenAsync("access_token"); 
+0

La propriété 'AccessToken' peut être utilisée uniquement sur le client. 'wait HttpContext.GetTokenAsync (" access_token ");' retourne toujours null dans mon contexte. – developer

+0

@developer Si vous obtenez null alors il doit y avoir quelque chose de mal dans la configuration du client. Quel middleware d'authentification utilisez-vous? – MJK