V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Gaays
V2EX  ›  JavaScript

web-app 的形式只有 https 地址可以调用手机摄像头?

  •  
  •   Gaays · 2022-03-15 09:25:59 +08:00 · 2826 次点击
    这是一个创建于 992 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近项目需求有扫码功能,我是用的是 vue2 组件 vue-qrcode-reader ,部署地址不是 https 的话无法调取系统摄像头进行扫码。

    想知道这个的原理是什么,以及有办法可以绕过这个限制或有其他不需要 https 也可以调用摄像头的组件吗?麻烦大佬们赐教,谢谢。

    14 条回复    2022-12-06 17:12:06 +08:00
    Oktfolio
        1
    Oktfolio  
       2022-03-15 09:28:47 +08:00
    Chrome 的限制呗
    P090mkVm22352Q8t
        2
    P090mkVm22352Q8t  
       2022-03-15 09:34:03 +08:00
    之前也做过这个摄像头功能,好像通过 nginx 配置 443 能给你前端地址强制转为 https
    yin1999
        3
    yin1999  
       2022-03-15 09:45:15 +08:00   ❤️ 1
    仅 https 可以调用,不过 localhost 用 http 应该也能调用( debug 用)。MDN Ref: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
    musi
        4
    musi  
       2022-03-15 10:10:59 +08:00
    浏览器限制,如果想绕过那只能自己开发 app 了,然后在 app 里写好调用摄像头的 api 再开给 js 访问
    libook
        5
    libook  
       2022-03-15 10:15:09 +08:00
    部属个 Nginx 用 Let's Encrypt 发个证书。

    强制 HTTPS 主要是安全方面考虑,因为 HTTP 可能被中间人注入代码来开启摄像头。
    otakustay
        6
    otakustay  
       2022-03-15 10:24:15 +08:00
    基本上近几年新的 API 都是仅 HTTPS 可用的
    leisure
        7
    leisure  
       2022-03-15 10:28:19 +08:00
    找个厂商申请个免费证书就好了,安全限制
    geekvcn
        8
    geekvcn  
       2022-03-15 10:39:54 +08:00 via Android
    确实是这样的,不然 http 随便一劫持,摄像头不是随便看
    iqoo
        9
    iqoo  
       2022-03-15 11:22:12 +08:00   ❤️ 2
    这年头不是 https 的网站都懒得打开
    Chism
        10
    Chism  
       2022-03-15 12:29:45 +08:00 via Android
    还有一种方法是 input 文件,限定为 image ,并且只能调用相机,这样貌似就可以不用 https ,前端读取 input 的文件也可以直接二维码识别
    DOLLOR
        11
    DOLLOR  
       2022-03-15 13:55:53 +08:00
    摄像头、屏幕分享、传感器这些对隐私安全要求相对高,只能在 HTTPS 下使用。
    murmur
        12
    murmur  
       2022-03-15 13:57:24 +08:00
    chrome 连 geolocation 都要 https ,就这玩意给我们坑的不轻,cordova 的应用都是本地文件哪里来的 https ,搞得有一段时间安卓某些个版本就没法定位
    ysc3839
        13
    ysc3839  
       2022-03-15 14:55:08 +08:00   ❤️ 1
    @murmur Cordova 这种调 WebView 的可以直接模拟一个 https 环境出来,甚至可以关闭安全机制,并没有什么问题
    jeesk
        14
    jeesk  
       2022-12-06 17:12:06 +08:00
    @murmur 你说的是 chrome 还是 webview 呀?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2574 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:28 · PVG 13:28 · LAX 21:28 · JFK 00:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.