关于 Navigator.credentials

这篇博客介绍了Navigator.credentials接口,该接口在安全上下文中(如HTTPS)用于处理用户的凭据管理。它返回一个CredentialsContainer对象,允许开发者实现登录和注销等身份验证功能,并在相关事件时通知用户。此功能可用于现代浏览器的特征检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文档详细地址:https://developer.mozilla.org/en-US/docs/Web/API/Navigator/credentials

Navigator.credentials:
安全上下文:此功能仅在安全上下文(HTTPS)、部分或所有支持的浏览器中可用。

在这里插入图片描述
在这里插入图片描述
接口的credentials属性Navigator 返回CredentialsContainer接口,该接口公开了请求凭据的方法。当有趣的事件发生时,该CredentialsContainer界面还会通知用户代理,例如成功登录或注销。该接口可用于特征检测。

var credentialsContainer = navigator.credentials
/*! coi-serviceworker v0.1.7 - Guido Zuidhof and contributors, licensed under MIT */ let coepCredentialless = false; if (typeof window === 'undefined') { self.addEventListener("install", () => self.skipWaiting()); self.addEventListener("activate", (event) => event.waitUntil(self.clients.claim())); self.addEventListener("message", (ev) => { if (!ev.data) { return; } else if (ev.data.type === "deregister") { self.registration .unregister() .then(() => { return self.clients.matchAll(); }) .then(clients => { clients.forEach((client) => client.navigate(client.url)); }); } else if (ev.data.type === "coepCredentialless") { coepCredentialless = ev.data.value; } }); self.addEventListener("fetch", function (event) { const r = event.request; if (r.cache === "only-if-cached" && r.mode !== "same-origin") { return; } const request = (coepCredentialless && r.mode === "no-cors") ? new Request(r, { credentials: "omit", }) : r; event.respondWith( fetch(request) .then((response) => { if (response.status === 0) { return response; } const newHeaders = new Headers(response.headers); newHeaders.set("Cross-Origin-Embedder-Policy", coepCredentialless ? "credentialless" : "require-corp" ); if (!coepCredentialless) { newHeaders.set("Cross-Origin-Resource-Policy", "cross-origin"); } newHeaders.set("Cross-Origin-Opener-Policy", "same-origin"); return new Response(response.body, { status: response.status, statusText: response.statusText, headers: newHeaders, }); }) .catch((e) => console.error(e)) ); }); } else { (() => { // You can customize the behavior of this script through a global `coi` variable. const coi = { shouldRegister: () => true, shouldDeregister: () => false, coepCredentialless: () => !(window.chrome || window.netscape), doReload: () => window.location.reload(), quiet: false, ...window.coi }; const n = navigator; if (n.serviceWorker && n.serviceWorker.controller) { n.serviceWorker.controller.postMessage({ type: "coepCredentialless", value: coi.coepCredentialless(), }); if (coi.shou
最新发布
03-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值