Hi Folks i'm trying to generate JWT token.
for that i created classLibrary and used it in d365 fo projects reference to generate the JWT token but it is showing below error.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Claims;
using System.IdentityModel.Tokens.Jwt;
using Microsoft.IdentityModel.Tokens;
namespace JWT
{
public class getToken
{
public string getJWTToken(string apiKey, string secret)
{
string tokenCreationTime = DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
//Your payload
var claims = new[]
{
new Claim(/iss/,apiKey),
new Claim(/iat/, tokenCreationTime)
};
//Your secret key for signing the token
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(secret);
string base64String = Convert.ToBase64String(bytes);
var key = new SymmetricSecurityKey(Convert.FromBase64String(base64String));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(
issuer: apiKey,
claims: claims //,
//expires: DateTime.Now.AddHours(1), // Adjust as needed
signingCredentials: creds
);
string tokenString = new JwtSecurityTokenHandler().WriteToken(token);
return tokenString;
}
}
}
and the code i used in x++ is
using JWT;
internal final class JWTGenerate
{
public static void main(Args _args)
{
JWT.getToken getToken;
getToken = new JWT.getToken();
str api = '********************',
secret = '********************';
str token = getToken.getJWTToken(api,secret).ToString();
info(strFmt(/%1/, token));
}
}
showing i tried same code in C# console app it is working perfectly.