首页 科技周边 IT业界 开发人员指南:如何实施Passkeys

开发人员指南:如何实施Passkeys

Feb 08, 2025 am 09:55 AM

>本指南向开发人员展示了如何添加基于Passkey的身份验证以获得更好的安全性和用户体验。 它可以解释手动服务器和客户端设置,以及如何通过视觉界面和预构建的流量简化下降。

>

本教程由印度的软件开发人员和技术作者Kumar Harsh撰写。在他的网站上查看他的更多作品! 使用PassKeys改善了应用程序安全性和用户的便利性。本指南详细详细介绍了Passkey实施,从设置到部署。 按照这些步骤创造安全且用户友好的身份验证体验,减少未经授权的访问和构建用户信任。

passkey身份验证:基础知识

>与脆弱的密码不同,Passkeys使用公开密码学来增强安全性和用户体验。想想一个保险库:您的身份是可以确保的,只能使用独特的密钥对访问。 Passkey的工作类似;每个用户都有一个私钥(安全存储在其设备上),并且与网站共享一个公共密钥。> 登录涉及网站向用户设备发送挑战。私钥会创建独特的签名(数字指纹),验证身份而不揭示钥匙本身。 即使网站遭到损害,这也可以确保登录安全。

>

这是一个视觉表示:

图:Passkey身份验证仪式

> Developer Guide: How to Implement Passkeys

实现PassKeys:手动方法(以及为什么不应该)
虽然Passkey是创新的,但由于设置困难和安全风险,手动实施是复杂的,并且灰心。 最好使用受支持的库。

通常,手动实现涉及:

服务器端设置:

这包括密钥生成,签名验证,证明处理以及用于用户信息和Passkey凭据的数据库集成。>>>>>

>

前端集成:
    >使用JavaScript的
  • ,客户端通过Authenticator Interactions(指纹扫描,引脚等)指导用户,并将数据发送到服务器。
  • 库,例如简单的Webauthn,简化了这一点。 它处理密钥生成,使过程比手动方法更容易。
  • > (React Client和Node.js Express Server示例使用SimpleWebauthn可用。) navigator.credentials.create()navigator.credentials.get()>服务器端设置(使用SimpleWebauthn)
>

服务器使用四个关键端点的

>软件包:>
  1. /generate-registration-options:为客户端配置和生成注册选项,以防止同一设备中的多个注册。 它也会产生一个挑战。
  2. /verify-registration:在数据库中验证成功的设备注册并保存用户详细信息(公共密钥,凭据ID,设备信息)。
  3. /generate-authentication-options:返回身份验证选项,检索注册的设备ID。
  4. /verify-authentication:使用注册设备验证成功的设备身份验证。

这个示例省略数据库集成;您需要将其添加到生产使用中。

客户端设置(使用simplewebauthn)

>

客户需要两个按钮(用于注册和身份验证)。 onRegistrationStart>从/generate-registration-options>请求配置,然后使用使用startRegistration()>。 成功注册后,@simple-webauthn/browser验证结果。 身份验证遵循类似的模式,使用/verify-registration>,/generate-authentication-optionsstartAuthentication()/verify-authentication

此手动方法很复杂,需要其他设置和维护以进行用户识别和数据存储。 HTTPS设置需要额外的步骤。

>

更简单的方法:用discope 实现Passkey

> Descope简化了Passkey实现,消除了复杂的手动设置。 它提供了用于管理身份验证流的无代码接口。

>

创建Descope Flow

    注册Descope帐户。
  1. 在仪表板中,创建一个auth Flow。选择PassKeys(WebAuthn)作为主要方法。
  2. >可选,添加一个2FA方法。
  3. >
  4. 选择一个登录屏幕(可能使用其他注册方法)。
  5. > Descope生成您的验证流,并为您的项目ID提供代码段。
  6. 设置React Project

创建一个新的React项目,使用

    安装Descope SDK:
  1. npm create vite>在您的项目ID中配置
  2. >在npm install @descope/react-sdk中使用descope组件和钩子来实现身份验证流。>
  3. 这个简化的示例显示了如何整合Descope的注册或登录流程:> AuthProvider main.jsx
  4. 尝试应用程序
  5. App.js>
  6. 运行
,并在

>上访问应用程序。 注册用户,设置PassKeys并进行测试登录。 您也可以在Descope仪表板中启用Passkey Autofill。

// Simplified App.js example
import { useDescope, useSession } from '@descope/react-sdk';
import { Descope } from '@descope/react-sdk';

const App = () => {
  const { isAuthenticated, isSessionLoading } = useSession();
  const { logout } = useDescope();

  return (
    <div>
      {!isAuthenticated && (
        <Descope flowId="sign-up-or-in" onSuccess={(e) => console.log(e.detail.user)} onError={(e) => console.log('Error!')} />
      )}
      {isAuthenticated && <button onClick={logout}>Logout</button>}
    </div>
  );
};
登录后复制

(完整的代码可在GitHub上找到。)>

> descope的拖放身份验证

> Discope简化了带有用于管理身份验证流的拖放接口的Passkey实现。这简化了设置和修改,使所有技能水平的开发人员都可以使用。 它允许更轻松,更快,更容易访问的登录。

>

>注册一个免费的下降帐户以了解更多信息。

>

以上是开发人员指南:如何实施Passkeys的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
CNCF ARM64飞行员:影响和见解 CNCF ARM64飞行员:影响和见解 Apr 15, 2025 am 08:27 AM

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

使用AWS ECS和LAMBDA的无服务器图像处理管道 使用AWS ECS和LAMBDA的无服务器图像处理管道 Apr 18, 2025 am 08:28 AM

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

21个开发人员新闻通讯将在2025年订阅 21个开发人员新闻通讯将在2025年订阅 Apr 24, 2025 am 08:28 AM

与这些顶级开发人员新闻通讯有关最新技术趋势的了解! 这个精选的清单为每个人提供了一些东西,从AI爱好者到经验丰富的后端和前端开发人员。 选择您的收藏夹并节省时间搜索REL

CNCF触发了ARM64和X86的平台平等突破 CNCF触发了ARM64和X86的平台平等突破 May 11, 2025 am 08:27 AM

Arm64 架构开源软件的 CI/CD 难题与解决方案 在 Arm64 架构上部署开源软件需要一个强大的 CI/CD 环境。然而,Arm64 和传统 x86 处理器架构的支持水平之间存在差异,Arm64 通常处于劣势。面向多种架构的基础设施组件开发人员对工作环境有一定的期望: 一致性:跨平台使用的工具和方法保持一致,避免因采用不太流行的平台而需要改变开发流程。 性能:平台和支持机制具有良好的性能,确保在支持多个平台时部署方案不会因速度不足而受影响。 测试覆盖率:对所有平台同时进行效率、合规性和

定制电信软件的好处 定制电信软件的好处 May 11, 2025 am 08:28 AM

定制电信软件开发无疑是一项相当大的投资。然而,从长远来看,您可能会意识到,这样的项目可能更具成本效益,因为它可以像市场上任何现成的解决方案一样提高您的生产力。了解构建定制电信系统的最重要优势。 获取您所需的确切功能 您可以购买的现成电信软件有两个潜在问题。有些缺乏可能显着改善您工作效率的有用功能。有时您可以通过一些外部集成来增强它们,但这并不总是足以使它们变得出色。 其他软件功能过多,使用起来过于复杂。您可能不会使用其中的一些(永远不会!)。大量的功能通常还会增加价格。 基于您的需求

See all articles