开发人员指南:如何实施Passkeys
>本指南向开发人员展示了如何添加基于Passkey的身份验证以获得更好的安全性和用户体验。 它可以解释手动服务器和客户端设置,以及如何通过视觉界面和预构建的流量简化下降。
>本教程由印度的软件开发人员和技术作者Kumar Harsh撰写。在他的网站上查看他的更多作品! 使用PassKeys改善了应用程序安全性和用户的便利性。本指南详细详细介绍了Passkey实施,从设置到部署。 按照这些步骤创造安全且用户友好的身份验证体验,减少未经授权的访问和构建用户信任。
passkey身份验证:基础知识
>与脆弱的密码不同,Passkeys使用公开密码学来增强安全性和用户体验。想想一个保险库:您的身份是可以确保的,只能使用独特的密钥对访问。 Passkey的工作类似;每个用户都有一个私钥(安全存储在其设备上),并且与网站共享一个公共密钥。
这是一个视觉表示:
图:Passkey身份验证仪式
>
通常,手动实现涉及:
服务器端设置:
这包括密钥生成,签名验证,证明处理以及用于用户信息和Passkey凭据的数据库集成。>
前端集成:- >使用JavaScript的
- 和,客户端通过Authenticator Interactions(指纹扫描,引脚等)指导用户,并将数据发送到服务器。 库,例如简单的Webauthn,简化了这一点。 它处理密钥生成,使过程比手动方法更容易。
- >
(React Client和Node.js Express Server示例使用SimpleWebauthn可用。)
navigator.credentials.create()
navigator.credentials.get()
>服务器端设置(使用SimpleWebauthn)
服务器使用四个关键端点的
>软件包:-
/generate-registration-options
:为客户端配置和生成注册选项,以防止同一设备中的多个注册。 它也会产生一个挑战。 -
/verify-registration
:在数据库中验证成功的设备注册并保存用户详细信息(公共密钥,凭据ID,设备信息)。 -
/generate-authentication-options
:返回身份验证选项,检索注册的设备ID。 -
/verify-authentication
:使用注册设备验证成功的设备身份验证。
这个示例省略数据库集成;您需要将其添加到生产使用中。
客户端设置(使用simplewebauthn)
>客户需要两个按钮(用于注册和身份验证)。 onRegistrationStart
>从/generate-registration-options
>请求配置,然后使用startRegistration()
>。 成功注册后,@simple-webauthn/browser
验证结果。 身份验证遵循类似的模式,使用/verify-registration
>,/generate-authentication-options
和startAuthentication()
。/verify-authentication
。
>
更简单的方法:用discope 实现Passkey
> Descope简化了Passkey实现,消除了复杂的手动设置。 它提供了用于管理身份验证流的无代码接口。>
创建Descope Flow
- 注册Descope帐户。
- 在仪表板中,创建一个auth Flow。选择PassKeys(WebAuthn)作为主要方法。
- >可选,添加一个2FA方法。
- > 选择一个登录屏幕(可能使用其他注册方法)。
- > Descope生成您的验证流,并为您的项目ID提供代码段。
- 设置React Project
创建一个新的React项目,使用
。- 安装Descope SDK:
-
npm create vite
>在您的项目ID中配置 - >在
npm install @descope/react-sdk
中使用descope组件和钩子来实现身份验证流。> - 这个简化的示例显示了如何整合Descope的注册或登录流程:
> AuthProvider
main.jsx
尝试应用程序 -
App.js
> 运行
>上访问应用程序。 注册用户,设置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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

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

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

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

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

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