Firebase JWT AUTH与JaggeryJS服务器端Javascript(非Node.js)

Firebase JWT AUTH与JaggeryJS服务器端Javascript(非Node.js),javascript,authentication,firebase,jaggery-js,Javascript,Authentication,Firebase,Jaggery Js,我正在尝试使用服务器端javascript语言:jaggeryJS为Firebase身份验证创建JWT 下面我将概述 我的JWT创作方法 前端响应 1我创建JWT的方法 HmacSHA256函数来自Google的CryptoJS库,Base64.encode如[此处][3]所述,但添加了第二个参数以允许websafe转义 <% //create a jwt //============================================== //INCLUDES in

我正在尝试使用服务器端javascript语言:jaggeryJS为Firebase身份验证创建JWT

下面我将概述

  • 我的JWT创作方法
  • 前端响应
  • 1我创建JWT的方法 HmacSHA256函数来自Google的CryptoJS库,Base64.encode如[此处][3]所述,但添加了第二个参数以允许websafe转义

    <%
    //create a jwt
    
    //==============================================
    //INCLUDES
        include('../lib/config.js');
        include('../lib/crypto/hmac-sha256.js');
        include('../lib/crypto/base64.js');
    
    //==============================================
    // HEADER
    var header = {
        "alg": "HS256",
        "typ": "JWT"
    }
    
    
    //==============================================
    // CLAIMS
    var claims = {
        "v": 0,
        "iat": Math.floor(new Date().getTime() / 1000),
        "d": {"user":"test"},
        "exp": (60 * 60 * 24 * 60),
        "admin": true,
        "debug": true
    }
    
    
    //PREPARE SIGNING
        var headerBase64  =  Base64.encode(stringify(header), true),
            claimBase64   =  Base64.encode(stringify(claims), true),
            signingInput  = headerBase64 + "." + claimBase64;
    
    
    
    //CREATE SIGNATURE
        var hash      = CryptoJS.HmacSHA256(signingInput, FIREBASECONFIG.secret).toString(),
            signature = Base64.encode(hash, true);
    
    
    //CONSTRUCT JWT ('jot') TOKEN
        var jwtToken = signingInput + "." + signature;
    
    
    print(jwtToken);
    

    这里有一个实用程序,可用于创建和读取令牌,这可能有助于进行故障排除:。此外,从最新版本的Firebase开始,所有令牌必须在数据有效负载中包含
    uid
    。(所有这些都不能回答您的问题,但希望能有所帮助)另一个想法是尝试从一个开源应用一些验证,比如。