PHPを使用して作成したJWTトークンを.NETアプリケーション(フレームワークバージョン4.5.1)で使用する必要があります。トークンは、次のコード(https://github.com/lcobucci/jwtライブラリに依存している)を使用して、PHPで生成されます。.NETでPHPで作成されたJWTトークンの検証/検証
use Lcobucci\JWT\Builder;
use Lcobucci\JWT\Signer\Hmac\Sha256;
$tokenBuilder = new Builder();
$tokenSigner = new Sha256();
$token = (string)$tokenBuilder
->setIssuer('localhost:8081')
->setAudience('myaudience')
->setIssuedAt(time())
->setExpiration(time() + 86400)
->sign($tokenSigner, '710VWV0zby')
->getToken();
return $token;
を私はC#でトークン罰金を読むことができましたが、検証し、検証する方法を見つけ出すために激しく苦労していますトークン署名。
TokenValidationParameters validationParameters = new TokenValidationParameters
{
ValidateIssuer = true
};
var tokenHandler = new JwtSecurityTokenHandler();
// THIS IS TO TEST IF TOKEN CAN BE READ
/*var jwtToken = tokenHandler.ReadJwtToken(token);
HttpContext.Current.Response.Write(jwtToken.Issuer);*/
SecurityToken validatedToken = null;
try
{
tokenHandler.ValidateToken(token, validationParameters, out validatedToken);
}
catch (Exception)
{
HttpContext.Current.Response.Write("Invalid! :(");
}
if (validatedToken != null) {
HttpContext.Current.Response.Write("Valid! :)");
}
私のコードでは、SHA-256キーがどこにも言及されていないとすれば、署名は検証できません。私は、TokenValidationParametersに何らかの形でそれを組み込む必要があると仮定しています.SigningTokenが1になると推測していますが、HMAC SHA 256キーを指定する場所を実際にはわかりません。