我正在尝试为 Windows 上的 C# .NET 编写一个自定义 JWT 令牌生成器,以便在 Google Firebase 中使用。我从 StackOverflow 上的几个不同地方获取了源代码(我正在尝试重新发现它们,这样我就可以相信原作者并提出一些额外的问题),所以它有点像大杂烩。
在大多数情况下,它似乎可以工作,但它似乎没有按预期生成有效的(firebase)令牌。这可能完全是因为我一开始就缺乏对它应该如何工作的理解,但如果我能从这里得到第二双世界级的优秀工程师的眼睛来指出我做错了什么并使事情正常运转,那就太好了。
这是代码:
// Token generator setup
using Newtonsoft.Json;
using System;
using System.IO;
using System.Web;
using System.Web.Configuration;
namespace myapp.Utils
{
public class GoogleJsonWebToken
{
public static string Encode(string uid)
{
var utc0 = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var issueTime = DateTime.Now;
var iat = (int)issueTime.Subtract(utc0).TotalSeconds;
var exp = (int)issueTime.AddMinutes(60).Subtract(utc0).TotalSeconds;
var firebaseInfPath = HttpContext.Current.Server.MapPath(WebConfigurationManager.AppSettings["firebaseInf"]);
var firebaseInfJsonContent = File.ReadAllText(firebaseInfPath);
var firebaseInf = JsonConvert.DeserializeObject<dynamic>(firebaseInfJsonContent);
var privateKey …
Run Code Online (Sandbox Code Playgroud)