如何在前端实现JSON Web令牌?

时间:2017-11-13 19:14:41

标签: node.js express jwt

我正在开发一个nodejs express应用程序。我使用Passport的JSON Web令牌进行身份验证。我已经成功创建了一个JSON Web令牌,它在Postman中工作正常,并且还验证令牌何时进入授权。但我坚持前端。

    [HttpGet]
    [Route("/api/security/login/type/socialmedia/twitter")]
    public IActionResult GetTwitterLogin(string redirect_uri)
    {
        ClientCallback = redirect_uri;
        string redirectUrl = "/api/security/login/type/socialmedia/twittercallback";
        var properties = SignInManager.ConfigureExternalAuthenticationProperties("Twitter", redirectUrl);
        return Challenge(properties, "Twitter");
    }

    [HttpGet]
    [Route("/api/security/login/type/socialmedia/twittercallback")]
    public async Task<HttpResponseMessage> GetTwitterCallBackAsync()
    {
        var info = await SignInManager.GetExternalLoginInfoAsync();

        var result = await SignInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent: false, bypassTwoFactor: true);
        if (result.Succeeded)
        {

        }
        else
        {

        }


        Response.StatusCode = (int)HttpStatusCode.OK;
        return null;
    }

如何将我在Postman中的标头中的令牌发送到此(app.get('/profile',passport.authenticate('jwt',{session:false}),function(req,res){ // res.json({user:user.req}); // console.log(req.query.token); res.json('bingo u cant see this without token') }); )路由,即如何在前端实现令牌以便首先检查令牌?

1 个答案:

答案 0 :(得分:0)

这取决于您在前端提出请求的方式 如果您使用的是ajax,请执行以下操作

  $.ajax({
    type: 'POST',
    url: url,
    headers: {
        "authToken":"your token" //you could save it in localstorage when recieved
    }
    //OR
    //beforeSend: function(xhr) { 
    //  xhr.setRequestHeader("My-First-Header", "first value"); 
    //  xhr.setRequestHeader("My-Second-Header", "second value"); 
    //}
 })

如果它的axios尝试像这样做

post(url, {
    headers: { authToken: token }
})