• 付费语音、视频、文件鉴权操作之防下载


    使用场景:

      如果您的凭证二维码是提前生成好的静态资源图片

      如果您的网站上有需要付费后才能查看的视频、音频

      如果您有一个文件下载站,需要支付积分后才能下载

      .....很多需要鉴权的场景  

    核心: nginx 的 internal 配合 proxy_pass

    internal
    语法:internal
    默认值:no
    使用字段: location
    internal指令指定某个location只能被“内部的”请求调用,外部的调用请求会返回”Not found” (404)
    “内部的”是指下列类型:
    • 指令error_page重定向的请求。
    • ngx_http_ssi_module模块中使用include virtual指令创建的某些子请求。
    • ngx_http_rewrite_module模块中使用rewrite指令修改的请求。
    一个防止错误页面被用户直接访问的例子:
    error_page 404 /404.html;
        location /404.html {
        internal;
    }

    proxy_pass
    反向代理,服务端开发经常遇到的配置,很多配置可设置

    实现方案:

    1.本机vagrant虚拟机为资源访问入口,局域网中一台机器为资源服务器

    demo 服务端语言为PHP

    <?php
    /**
     * User: szliugx@gmail.com
     * Date: 2017/10/12
     * Time: 10:26
     */
    
    // 可以先进行身份判断有无访问权限
    // ...
    $name = $_GET['name'];
    //header('Content-Type: ' . getimagesize('./media/auth-voice/' . $name)['mime']);
    header('X-Accel-Redirect: /media/auth-voice/' . $name."?token=XXXXXXXXXXXXX");
    die;

    访问入口下图:

    这样,根据请求的资源,判断这个用户是否有访问请求文件的权限,如果有请求资源服务器(或cdn),访问时可以带上token这样的访问口令(注意:访问token是后端生成的,对于前端不可见)

    2.需要nginx做如下配置(也可以不走代理,直接访问服务器上的资源文件)

    配置完后,如果资源服务器有对应的资源,就已经成功了,具体配置demo中未做优化处理

    查看配置是否生效:

    1.首先看资源文件是否可用

    HTML 代码引入播放器先测试一下

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>音频播放器</title>
    </head>
    <body>
    <object height="50" width="100" data="http://www.vagrant-test.com/media.php?name=rain.mp3"></object>
    <p>如果你无法听到该音频,那么可能你的电脑或浏览器不支持该文件格式。</p>
    <p>或者你没有打开扬声器。</p>
    </body>
    </html>

    能顺利播放,存在http 200 和 206 状态,可以了解下206状态

    2.查看资源服务器是否受访问过

    资源服务器资源地址(web服务器80端口根目录设置在/data/www)

     直接访问资源文件是404找不到的(nginx 的 internal 做了限制)

    请求资源(media.php)和使用资源(media.html)的文件结构

  • 相关阅读:
    6.金额中带有逗号不能直接parseFloat
    5-不要在ajax中return false不会生效的
    4.xx is not defined at HTMLAnchorElement.onclick 的问题
    3.git更新地址也更改
    2.文件上传后没有权限不够
    第三章
    oracle-sql
    华为杯 数模
    Learning Dynamic Context Graphs for Predicting Social Events
    图神经网络
  • 原文地址:https://www.cnblogs.com/liugx/p/7655468.html
Copyright © 2020-2023  润新知