rehankanak/guardian

Laravel桌面浏览器通过手机应用验证用户登录的包

1.0.0 2024-02-15 14:12 UTC

This package is auto-updated.

Last update: 2024-09-15 15:28:12 UTC


README

Latest Version on Packagist Total Downloads

此Laravel包帮助您的应用程序通过手机应用验证用户在桌面浏览器上的登录。它通过生成一系列选项来实现,用户通过手机应用对这些选项进行响应。如果用户正确响应,则登录验证成功并可授权。

我们包中包含以下GuardingType

  • INPUT:用户在手机应用中输入一个代码。
  • PRESS:用户在手机应用中按下一个代码。
  • APPROVE/DENY:用户通过手机应用批准或拒绝登录请求。

包提供了以下路由:

  • POST /api/guardian/generate
    • 此路由用于为用户生成一个响应的监护人。
  • POST /api/guardian/respond
    • 此路由用于通过手机应用响应监护人。
  • POST /api/guardian/status
    • 此路由用于验证用户的响应并授权登录。

流程

桌面

  1. 当用户尝试在桌面上登录,并且用户凭证验证通过时,为用户生成一个响应的监护人。
    • 使用POST /api/guardian/generate路由,根据用户的uuid生成监护人。
    • 一旦监护人生成,向用户发送通知,包括之前步骤中获得的GuardianTypeGuardianOption
  2. 轮询POST /api/guardian/status路由,检查用户是否已对监护人做出响应,这可以给出三种结果:
    • -1:用户尚未响应
    • 0:用户已响应,但响应错误
    • 1:用户已响应,且响应正确
  3. 根据状态,您可以授权登录,或要求用户重新响应或生成新的监护人。

手机

  • 根据GuardianTypeGuardianOption向用户显示UI
    • INPUT:向用户显示文本输入框,用于输入代码
    • PRESS:向用户显示代码列表,用于按下正确的代码
    • APPROVE/DENY:向用户显示两个按钮,用于批准或拒绝登录请求
  • 用户响应时,使用POST /api/guardian/respond路由将响应发送到服务器。

安装

您可以通过composer安装此包

composer require rehankanak/guardian

贡献

这是一个由社区驱动的包。如果您发现任何错误,请创建一个带有修复的pull request,或者至少打开一个issue。

测试

composer test

致谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件