---
url: 'https://www.corbado.com/pt/blog/api-web-bluetooth-passkeys'
title: 'API Web Bluetooth e Passkeys'
description: 'Entenda o papel da API Web Bluetooth para as passkeys! Saiba como a deteção da disponibilidade do Bluetooth melhora a Autenticação entre Dispositivos (CDA) com WebAuthn.'
lang: 'pt'
author: 'Vincent Delitz'
date: '2025-08-08T11:42:53.550Z'
lastModified: '2026-08-29T06:02:56.755Z'
keywords: 'passkeys Bluetooth, webauthn Bluetooth, api javascript Bluetooth, api web Bluetooth, api Bluetooth, deteção de Bluetooth no navegador'
category: 'Authentication'
---

# API Web Bluetooth e Passkeys

## Visão Geral

<div className="blogNav">
1. [Introdução: API Web Bluetooth e Passkeys](#1-introduo-api-web-bluetooth--passkeys)
2. [O que é a API Web Bluetooth?](#2-o-que--a-api-web-bluetooth)

    2.1 [getAvailability()](#21-getavailability)

    2.2 [getDevices()](#22-getdevices)

    2.3 [requestDevice()](#23-requestdevice)

3. [Características da API Web Bluetooth](#3-caractersticas-da-api-web-bluetooth)
4. [Como usar a API Web Bluetooth](#4-como-usar-a-api-web-bluetooth)
5. [Benefícios da API Web Bluetooth](#5-benefcios-da-api-web-bluetooth)
6. [Problemas com a API Web Bluetooth](#6-problemas-com-a-api-web-bluetooth)
7. [Adoção da API Web Bluetooth](#7-adoo-da-api-web-bluetooth)
8. [Porque é que a deteção de Bluetooth é importante para as passkeys?](#8-porque--que-a-deteo-de-bluetooth--importante-para-as-passkeys)

    8.1
[Funcionalidade principal das passkeys: Autenticação entre Dispositivos (CDA) via Códigos QR e Bluetooth](#81-funcionalidade-principal-das-passkeys-autenticao-entre-dispositivos-cda-via-cdigos-qr--bluetooth)

    8.2
[O Bluetooth nem sempre está presente e pode ser mau para a UX da CDA](#82-o-bluetooth-nem-sempre-est-presente-e-pode-ser-mau-para-a-ux-da-cda)

    8.3
[Impacto diferente da indisponibilidade do Bluetooth no Firefox e Safari](#83-impacto-diferente-da-indisponibilidade-do-bluetooth-no-firefox-e-safari)

9. [O Windows 10 tem um requisito de Bluetooth?](#9-o-windows-10-tem-um-requisito-de-bluetooth)
10. [O Windows 11 tem um requisito de Bluetooth?](#10-o-windows-11-tem-um-requisito-de-bluetooth)
11. [Recomendação](#11-recomendao)
12. [Conclusão: API Web Bluetooth para Passkeys](#12-concluso-api-web-bluetooth-para-passkeys)

</div>

## 1. Introdução: API Web Bluetooth e Passkeys

As passkeys são o novo padrão de login na web. Uma das principais funcionalidades das
passkeys é a [Autenticação](https://www.corbado.com/pt/blog/webauthn-relying-party-id-rpid-passkeys) entre
Dispositivos (CDA) através de Bluetooth e Códigos QR. Neste contexto, outra API web
torna-se importante: a
[API Web Bluetooth](https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API).

Ao permitir que as aplicações web interajam diretamente com dispositivos Bluetooth, a
**API Web Bluetooth** desempenha um papel crucial para garantir processos de
[autenticação](https://www.corbado.com/pt/blog/webauthn-relying-party-id-rpid-passkeys) seguros e eficientes
(especialmente para a [CDA](https://www.corbado.com/pt/blog/chaves-de-acesso-parallels-cda)).

Este artigo irá apresentar o funcionamento da API Web Bluetooth e explorar as implicações
da deteção de Bluetooth para a
[autenticação](https://www.corbado.com/pt/blog/webauthn-relying-party-id-rpid-passkeys) com passkeys. Queremos
responder às seguintes perguntas:

1. **O que é a API Web Bluetooth?**
2. **Como usar a API Web Bluetooth?**
3. **Porque é que a deteção de Bluetooth é importante para as passkeys?**

## 2. O que é a API Web Bluetooth?

A API Web Bluetooth é uma interface JavaScript que permite que as aplicações web acedam e
comuniquem com dispositivos Bluetooth. Faz parte do padrão HTML5 e é suportada por
navegadores como o Chrome, Edge e Opera. Esta API permite que as aplicações web:

- procurem por dispositivos Bluetooth Low [Energy](https://www.corbado.com/passkeys-for-energy) (BLE) próximos
- peçam permissão para emparelhar
- troquem dados usando o protocolo Generic Attribute Profile (GATT).

Existem três funções chave na API Web Bluetooth.

### 2.1 getAvailability()

`getAvailability()` devolve uma promessa que se resolve para um booleano, indicando se o
agente de utilizador suporta Bluetooth (ou seja, se o dispositivo tem um módulo
Bluetooth). Alguns agentes de utilizador permitem que o utilizador configure uma opção que
especifica o valor devolvido por este método.

```javascript
navigator.bluetooth.getAvailability().then((available) => {
    if (available) {
        console.log("This device supports Bluetooth!");
    } else {
        console.log("Doh! Bluetooth is not supported");
    }
});
```

### 2.2 getDevices()

`getDevices()` devolve uma promessa que se resolve para um array de `BluetoothDevices` aos
quais a origem tem permissão para aceder (incluindo aqueles que estão fora de alcance e
desligados). A permissão é obtida através de chamadas anteriores a
`Bluetooth.requestDevice()`.

```javascript
navigator.bluetooth.getDevices().then((devices) => {
    devices.forEach((device) => {
        console.log("Device:", device.name);
    });
});
```

### 2.3 requestDevice()

`requestDevice()` devolve uma promessa para um objeto `BluetoothDevice` com as opções
especificadas. Se não houver uma interface de seleção, este método devolve o primeiro
dispositivo que corresponda aos critérios.

```javascript
navigator.bluetooth
    .requestDevice({
        filters: [
            {
                services: ["battery_service"],
            },
        ],
    })
    .then((device) => {
        console.log("Device:", device.name);
    })
    .catch((error) => {
        console.log("Error:", error);
    });
```

Detalhes e exemplos de código podem ser encontrados
[aqui](https://developer.chrome.com/docs/capabilities/bluetooth). Encontre também aqui o
[padrão W3C para Web Bluetooth](https://webbluetoothcg.github.io/web-bluetooth/#bluetooth).

## 3. Características da API Web Bluetooth

- **Apenas HTTPS:** A API Web Bluetooth está disponível apenas em contextos seguros
  (HTTPS), garantindo a transmissão segura de dados.
- **Requer gesto do utilizador:** A descoberta de dispositivos através de
  `navigator.bluetooth.requestDevice` deve ser acionada por um gesto do utilizador, como
  um toque ou clique do rato, por razões de
  [segurança](https://www.corbado.com/pt/blog/senhas-complexas-quebradas-em-breve).

## 4. Como usar a API Web Bluetooth

Para verificar o suporte à API Web Bluetooth, pode fazê-lo com o seguinte código:

```javascript
if ("bluetooth" in navigator) {
    // Web Bluetooth API is supported
    console.log("Web Bluetooth is supported!");
} else {
    // Web Bluetooth API is not supported
    console.log("Web Bluetooth is not supported!");
}
```

Como as funções específicas são chamadas é explicado acima.

## 5. Benefícios da API Web Bluetooth

A API Web Bluetooth oferece várias vantagens para programadores e utilizadores:

- **Interatividade:** Permite que as aplicações web interajam com dispositivos Bluetooth
  sem [aplicações nativas](https://www.corbado.com/pt/blog/passkeys-aplicacoes-nativas) ou plugins.
- **Experiência do Utilizador Melhorada:** Permite o acesso a funcionalidades e sensores
  de dispositivos sem fios como monitores de frequência cardíaca ou controlos de música.
- **Segurança e Privacidade:** Os utilizadores devem conceder permissão para o acesso ao
  dispositivo, que pode ser revogada a qualquer momento.

## 6. Problemas com a API Web Bluetooth

Apesar dos seus benefícios, a API Web Bluetooth tem limitações:

- **Sem suporte no Safari e Firefox:** Nem todos os navegadores suportam a API.
  Notavelmente, o Safari e o Firefox não a suportam, o que pode afetar uma parte
  significativa dos utilizadores.
- **Dependência das capacidades do dispositivo:** A API funciona apenas com dispositivos
  Bluetooth Low [Energy](https://www.corbado.com/passkeys-for-energy) (BLE) compatíveis. Além disso, os
  dispositivos podem não ser detetáveis devido a fatores como bateria fraca ou estarem
  fora de alcance.
- **Especificação em evolução:** Sendo uma especificação em rascunho, a API Web Bluetooth
  está sujeita a alterações. Os programadores precisam de se manter atualizados sobre os
  últimos desenvolvimentos e compatibilidade dos navegadores.
- **Falsos positivos**: A API pode, por vezes, indicar suporte a Bluetooth quando este não
  está realmente disponível.
- **Disponibilidade controlada pelo utilizador:** Os utilizadores e os navegadores podem
  desativar as permissões de Bluetooth, fazendo com que `getAvailability()` devolva
  `false` mesmo que um adaptador Bluetooth esteja presente. Isto é controlado através da
  `Permissions-Policy:Bluetooth`. Da mesma forma, mesmo que `getAvailability()` devolva
  `true`, o adaptador Bluetooth pode não estar ligado, ou os utilizadores podem negar a
  permissão para usar a API quando solicitado.

## 7. Adoção da API Web Bluetooth

A adoção da API Web Bluetooth ainda está a crescer. Em junho de 2024, de acordo com o
[Can I Use](https://caniuse.com/?search=web%20bluetooth), 76,53% dos utilizadores globais
têm dispositivos com suporte para a API Web Bluetooth.

![adoption web bluetooth ](https://www.corbado.com/website-assets/adoption_web_bluetooth_6c8993fd57.png)

No entanto, a falta de suporte no Safari e Firefox continua a ser um obstáculo
significativo, afetando a experiência do utilizador nesses navegadores. Além disso,
algumas das funcionalidades (por exemplo, `Bluetooth.getDevices()`) devem ser ativadas
explicitamente pelo utilizador, o que pode ser um desafio para usar a API em segundo
plano.

![A screenshot of a computer Description automatically generated](e22a0666712cf2f0943562edb45960c4.png)![adoption web bluetooth browsers](https://www.corbado.com/website-assets/adoption_web_bluetooth_browsers_57b09882da.png)_Encontre
os dados mais recentes em:
[https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility](https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility)_

## 8. Porque é que a deteção de Bluetooth é importante para as passkeys?

Existe uma razão principal pela qual as partes confiáveis devem saber sobre a
disponibilidade do Bluetooth, quando querem oferecer passkeys nos seus websites e
aplicações.

### 8.1 Funcionalidade principal das passkeys: Autenticação entre Dispositivos (CDA) via Códigos QR e Bluetooth

Uma das novas e inovadoras funcionalidades das passkeys é a **Autenticação entre
Dispositivos (CDA)** – também conhecida como autenticação híbrida. Esta funcionalidade
permite que os utilizadores se autentiquem num dispositivo (normalmente um computador de
secretária ou portátil) usando os seus dispositivos móveis através de códigos QR e
Bluetooth. Este método de autenticação híbrida melhora a
[segurança](https://www.corbado.com/pt/blog/senhas-complexas-quebradas-em-breve) e a conveniência, proporcionando
uma experiência de utilizador fluida. A maioria dos utilizadores não técnicos está hoje em
dia habituada a ler códigos QR, seja durante a pandemia de COVID para registo ou através
de aplicações de mensagens mobile-first que mais tarde adicionaram suporte para desktop
(por exemplo, [WhatsApp](https://www.corbado.com/blog/whatsapp-passkeys) ou Telegram).

Decidir sobre uma estratégia de [CDA](https://www.corbado.com/pt/blog/chaves-de-acesso-parallels-cda) é crucial
no início de qualquer projeto de passkeys. Quanto mais se depender da
[CDA](https://www.corbado.com/pt/blog/chaves-de-acesso-parallels-cda), melhor o suporte e a fiabilidade da mesma
terão de ser. Assim, detetar a disponibilidade de Bluetooth num dispositivo é essencial.

### 8.2 O Bluetooth nem sempre está presente e pode ser mau para a UX da CDA

No entanto, nem todos os dispositivos têm capacidades Bluetooth ou podem ter o Bluetooth
desligado. Para as partes confiáveis que oferecem passkeys, é essencial detetar a
disponibilidade do Bluetooth para **determinar se a CDA pode ser usada ou se é necessário
outro método de autenticação alternativo**. A API Web Bluetooth oferece uma solução ao
permitir que as aplicações web verifiquem a disponibilidade de Bluetooth nos dispositivos
do utilizador.

Tenha em mente que a CDA nem sempre é estável, falhando ocasionalmente a ligação sem
razões claras. Além disso, devido à novidade da API,
[por vezes são devolvidos resultados errados pela API](https://issues.chromium.org/issues/40901954).

### 8.3 Impacto diferente da indisponibilidade do Bluetooth no Firefox e Safari

A indisponibilidade da API Web Bluetooth no Firefox e Safari é um problema,
particularmente para o Firefox.

O Safari é um problema menor porque os **dispositivos macOS**, onde a CDA pode ser
realizada, têm **Bluetooth integrado desde os primeiros modelos**. No entanto, se o
[Bluetooth no macOS não estiver a funcionar](https://setapp.com/how-to/quickly-fix-mac-bluetooth-not-working),
os utilizadores podem ter problemas com a
[autenticação entre dispositivos](https://www.corbado.com/pt/blog/webauthn-transportes-interno-hibrido) e
precisar de resolver os seus problemas de configuração ou recorrer a um método
alternativo. Os iPhones com Safari têm Bluetooth integrado desde o seu lançamento.

Contudo, o **Firefox é um problema significativo, pois é popular em dispositivos
Windows**. Se um utilizador estiver no Firefox e quiser usar a CDA, a parte confiável
**não consegue determinar de forma fiável se o Bluetooth está disponível**, uma vez que a
API Web Bluetooth não está implementada. Isto pode resultar numa má experiência do
utilizador, com os utilizadores potencialmente a ficarem presos em certos pontos sem saber
o que fazer.

Como vimos, também em artigos anteriores, os dispositivos Windows estão a ficar para trás
em termos de adoção de passkeys (veja o [State of Passkeys](https://state-of-passkeys.io/)
também). Vamos ver quão comum é a disponibilidade de Bluetooth.

## 9. O Windows 10 tem um requisito de Bluetooth?

**O Windows 10 não tem um requisito estrito de Bluetooth**, mas a maioria dos portáteis e
computadores de secretária modernos vêm com capacidades Bluetooth. No entanto, o
utilizador pode tê-lo desligado, ou pode não estar disponível em algumas configurações,
especialmente em computadores de secretária personalizados.

## 10. O Windows 11 tem um requisito de Bluetooth?

**O Windows 11**, semelhante ao Windows 10, **não exige Bluetooth**. No entanto, a
tendência para hardware mais integrado e moderno significa que a maioria dos dispositivos
compatíveis com o [Windows 11](https://www.corbado.com/blog/passkeys-windows-11) provavelmente terá capacidades
Bluetooth. Ainda assim, os utilizadores podem desativá-lo, afetando as implementações de
CDA.

## 11. Recomendação

Na tabela seguinte, pode ver se consegue determinar se um dispositivo de secretária está
pronto para Bluetooth e, portanto, pode ser usado como um cliente de CDA:

![bluetooth ready devices](https://s3.eu-central-1.amazonaws.com/corbado-cloud-staging-website-assets/bluetooth_ready_devices_9ff94c903c.jpg)

<table>
    <thead>
        <tr>
            <th rowspan="2">Sistema operativo</th>
            <th rowspan="2">Suporte de hardware Bluetooth</th>
            <th colspan="4">Deteção de Bluetooth no navegador</th>
        </tr>
        <tr>
            <th>Chrome</th>
            <th>Edge</th>
            <th>Firefox</th>
            <th>Safari</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Windows 10</td>
            <td>baixo</td>
            <td>✅</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
        </tr>
        <tr>
            <td>Windows 11</td>
            <td>médio</td>
            <td>✅</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
        </tr>
        <tr>
            <td>macOS</td>
            <td>alto</td>
            <td>✅</td>
            <td>❌</td>
            <td>❌</td>
            <td>❌</td>
        </tr>
    </tbody>
</table>

Tenha em mente que, mesmo que o seu hardware esteja pronto para Bluetooth, a
funcionalidade Bluetooth pode ser desligada pelo utilizador. Quando o Bluetooth está
desligado, o utilizador ainda pode usar a CDA porque pode optar por ativá-lo, o que
funciona para Windows e Mac:
![passkeys bluetooth popup macos](https://www.corbado.com/website-assets/passkeys_bluetooth_popup_266940ee52.png)_Pedido
do macOS para ativar o Bluetooth_

![passkeys bluetooth popup windows](https://www.corbado.com/website-assets/passkeys_bluetooth_popup_win10_5598d7ad8e.png)_Pedido
do Windows 11 para ativar o Bluetooth_

A informação sobre a disponibilidade do Bluetooth é especialmente interessante no Windows
10 e [Windows 11](https://www.corbado.com/blog/passkeys-windows-11), onde o suporte a Bluetooth é menor e há uma
probabilidade muito alta de que a
[autenticação entre dispositivos](https://www.corbado.com/pt/blog/webauthn-transportes-interno-hibrido) precise
de acontecer (num login baseado em passkeys). Os dispositivos macOS recentes todos têm
suporte para Bluetooth. Estes dispositivos macOS têm potencialmente também acesso direto a
passkeys armazenadas no [iCloud Keychain](https://www.corbado.com/glossary/icloud-keychain), por isso não são uma
preocupação.

**No Windows 10 e Windows 11: Use `getAvailability()` para descobrir se o Bluetooth pode
funcionar. Caso o utilizador tenha apenas passkeys que não são do Windows, pode recorrer
imediatamente a outras opções de autenticação.**

Numa situação em que apenas estão disponíveis passkeys híbridas, acionar a autenticação
com passkeys não levará a uma autenticação bem-sucedida, mas sim a um beco sem saída para
o utilizador. Para todos os outros navegadores no Windows 10 e
[Windows 11](https://www.corbado.com/blog/passkeys-windows-11), infelizmente, não há outra forma de descobrir se
há suporte para CDA.

## 12. Conclusão: API Web Bluetooth para Passkeys

A API Web Bluetooth representa uma ferramenta poderosa para melhorar a autenticação com
passkeys através das capacidades Bluetooth. Ao compreender e aproveitar esta API, os
programadores podem criar métodos de autenticação mais seguros e fáceis de usar. No
entanto, devem também navegar nas suas limitações e garantir mecanismos de recurso
robustos para manter uma experiência de utilizador fluida em diferentes navegadores e
dispositivos.

Com este artigo, demos uma resposta às três perguntas centrais:

1. **O que é a API Web Bluetooth?** A API Web Bluetooth é uma interface JavaScript que
   permite que as aplicações web acedam e comuniquem com dispositivos Bluetooth,
   facilitando interações seguras.
2. **Como usar a API Web Bluetooth?** Use a API Web Bluetooth chamando funções como
   `getAvailability()`, `getDevices()` e `requestDevice()` para verificar o suporte a
   Bluetooth, listar dispositivos acessíveis e solicitar o emparelhamento de dispositivos.
3. **Porque é que a deteção de Bluetooth para passkeys é importante?** Ao integrar a API
   Web Bluetooth na sua estratégia de implementação de passkeys, pode construir uma ótima
   solução de autenticação baseada em passkeys que recorre à CDA apenas se houver
   dispositivos que consigam detetar o suporte a Bluetooth.

Para mais informações sobre a API Web Bluetooth e uma coleção de exemplos, por favor
clique [aqui](https://googlechrome.github.io/samples/web-bluetooth/).
