Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用JWT发布请求_Node.js_Jwt - Fatal编程技术网

Node.js 使用JWT发布请求

Node.js 使用JWT发布请求,node.js,jwt,Node.js,Jwt,我有一个在/verify/:token中发布的路由,其中:token是一个jwt,但在我看来,表单向/verify/:token发送一个post请求,然后在我的路由逻辑中,我得到一个无效的jwt,因为正在发送:token,我如何解决这个问题 <form action="/verify/:token" method="POST"> <div class="input-group form-group"> <span class="input-g

我有一个在
/verify/:token
中发布的路由,其中
:token
是一个jwt,但在我看来,表单向
/verify/:token
发送一个post请求,然后在我的路由逻辑中,我得到一个无效的jwt,因为正在发送
:token
,我如何解决这个问题

<form action="/verify/:token" method="POST">
    <div class="input-group form-group">
        <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
        <input id="passcode" type="text" class="form-control" name="passcode" placeholder="Pass Code" required>
    </div>
    <button type="submit" class="btn btn-primary" style="display: inline-block;">Verify</button>
</form>

验证

假设客户端有jQuery,则在提交表单时必须防止表单的默认操作。然后,您必须通过获取
input
字段的值来发送ajax请求

$('form').submit(function(e){
    //prevent default
    e.preventDefault();

    let token = $('#passcode').val();
    let url = "/verify/" + token;
    $.post( url, function( data ) {
        // Do something once the ajax call succeeds
    }).fail(function() {
         alert( "error" );
    });
});

假设客户端有jQuery,那么在提交表单时必须防止表单的默认操作。然后,您必须通过获取
input
字段的值来发送ajax请求

$('form').submit(function(e){
    //prevent default
    e.preventDefault();

    let token = $('#passcode').val();
    let url = "/verify/" + token;
    $.post( url, function( data ) {
        // Do something once the ajax call succeeds
    }).fail(function() {
         alert( "error" );
    });
});

将令牌传递给表单页路由器

router.get("/", function (req, res, next) {
jwt.sign({_id: user._id}, jwtSecret, { expiresIn: '5m' }).then((token) => {
        res.render("postForm", {
            token: token
        });
  });
});
现在,假设您在客户机中使用ejs,您可以在隐藏的输入字段中使用令牌

 <form action="/verify" method="POST">
        <div class="input-group form-group">
            <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
     <input id="token" type="hidden" class="form-control" name="token" value="<%= token %> ">
            <input id="passcode" type="text" class="form-control" name="passcode" placeholder="Pass Code" required>
        </div>
        <button type="submit" class="btn btn-primary" style="display: inline-block;">Verify</button>

</form>

验证

将令牌传递给表单页面路由器

router.get("/", function (req, res, next) {
jwt.sign({_id: user._id}, jwtSecret, { expiresIn: '5m' }).then((token) => {
        res.render("postForm", {
            token: token
        });
  });
});
现在,假设您在客户机中使用ejs,您可以在隐藏的输入字段中使用令牌

 <form action="/verify" method="POST">
        <div class="input-group form-group">
            <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
     <input id="token" type="hidden" class="form-control" name="token" value="<%= token %> ">
            <input id="passcode" type="text" class="form-control" name="passcode" placeholder="Pass Code" required>
        </div>
        <button type="submit" class="btn btn-primary" style="display: inline-block;">Verify</button>

</form>

验证

你能发布你的路线逻辑吗?是否使用Express进行路由选择?是的,Express.js您是否考虑或实现了这些事情?1.为令牌处理创建Express中间件2。生成令牌3。管理客户端令牌处理您可以发布路由逻辑吗?是否使用Express进行路由选择?是的,Express.js您是否考虑或实现了这些事情?1.为令牌处理创建Express中间件2。生成令牌3。管理客户端令牌处理谢谢,但我需要让生成的jmwt(jssonwebtoken)令牌在5分钟内过期?expiresIn=300似乎不起作用如何生成JWT令牌?谢谢,但我需要让生成的jmwt(jssonwebtoken)令牌在5分钟内过期?expiresIn=300似乎不起作用您如何生成JWT令牌?