【问题标题】:AJAX: JWT auth for video load via srcAJAX:通过 src 进行视频加载的 JWT 身份验证
【发布时间】:2016-10-16 19:46:54
【问题描述】:

我正在从需要 JWT Web 令牌的 API 请求视频:

    // when the ajax call is done (the tolken is recieved )
    getAccessToken.done(function(data) {


        var d = JSON.stringify({'fpath': fpath})
        // get the download url
        var downloadurl = $.ajax({
            type: "POST",
            url: "https://gcp.inbcu.com/download",
            beforeSend: function(xhr){
                xhr.setRequestHeader("Authorization", "JWT " +  data.access_token);
            },
            contentType: 'application/json',
            data: d,
            success: function(response){
                $('#video-source').attr('src', response.url)
                $('#myvideo').load()
            },
            error:function(jqXHR, textStatus, errorThrown) {
                console.log("request for download url failed: ", textStatus, errorThrown, jqXHR);
            },
            dataType: 'json'
        });

这个 ajax 调用本身是成功的 (200) 并返回正确的值。主要是返回一个url来设置视频的来源。

问题是,视频src 尝试访问该 url 并且没有权限(没有 jwt 令牌/授权)。加载视频的 src 时,我应该如何加载具有适当权限的视频?这可能吗?

【问题讨论】:

    标签: javascript jquery ajax video jwt


    【解决方案1】:

    正如a similar question 的答案所解释的那样,这是不可能的。要么您需要将其作为 AJAX 请求来执行,但您之前已经这样做了,但速度很慢,或者您需要添加额外的方法让服务器接受身份验证。

    关于这些身份验证选项,您可以添加服务器可以检查的会话 cookie,或将令牌附加到视频 url,如 response.url + '?token=' + token

    【讨论】:

    • 我知道这是一篇旧帖子,但请在使用前阅读this post。将 JWT 添加到 URL 并不好,因为浏览器会将带有 JWT 的 url 保存在历史记录中,这可能是一个安全问题。
    【解决方案2】:

    服务工作者将是添加身份验证令牌的首要任务。但这只能解决 FF & Blink 的问题

    【讨论】:

      猜你喜欢
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 2016-04-07
      相关资源
      最近更新 更多