如何使用长Azure JWT令牌发送HTTP请求

时间:2018-08-23 14:09:49

标签: api react-redux jwt asp.net-core-webapi maxlength

当将带有JWT的请求作为参数从URL(前端)发送到Web API(.net核心后端)时,得到400(错误请求)。我认为是因为令牌太长,并且浏览器有URL限制。

  componentDidMount() {

    const jwtToken = localStorage.getItem('id_token');

    let config = {
        method: 'POST'
    }
    return fetch('http://localhost:33458/api/GetUser/' + jwtToken, config)
        .then(
            (result) => {
                console.log(result);
                //this.setState({
                //    isLoaded: true,
                //    data: result
                //});

            },
        (error) => {
            console.log(error);
                //this.setState({
                //    isLoaded: true,
                //    error
                //});
            }
        )
}

Web API:

    [HttpPost]
    [Route("ListUsers/{token}")]
    public List<UserDataModel> GetUser(string token)
    {
       //handle token checking and getting user data
    }

如何避免url上限?

1 个答案:

答案 0 :(得分:0)

我通过添加一个Authorization标头解决了这个问题:

headers: { "Authorization": "Bearer" + jwtToken}

然后使用以下命令在Web api中检索Authorization标头的值:

 string header = HttpContext.Request.Headers["Authorization"];
 string token = header.Remove(0, 6);