steroids/auth


README

1. 邮箱/电话/登录 + 密码 *(如果 isPasswordAvailable = true)

1.1 注册

RegistrationForm
    [login] (email/phone/login)
    [password]
    [...custom attrubites]

1.2 注册 -> 确认

ConfirmForm
    [email/phone]
    [code]

1.3 登录

LoginForm
    [login] (email/phone/login)
    [password]

1.4 登录 -> 确认 *(如果 isPasswordAvailable = false)

ConfirmForm
    [email/phone]
    [code]

1.5 恢复

RecoveryPasswordForm
    [login] (email/phone)

1.6 恢复 -> 确认

RecoveryPasswordConfirmForm
    [login] (email/phone)
    [code]

2. 通过社交网络(oauth)登录/注册

2.1 登录/注册

ProviderlLoginForm
    [socialParams]

2.2 输入邮箱 (如果社交网络没有提供)

SocialEmailForm
    [uid]
    [email]

2.2 输入邮箱/电话 -> 确认

SocialConfirmForm
    [uid]
    [email]
    [code]

使用 2FA

  1. 在配置中需要声明可用于 2fa 的提供者,目前可能有两个 - notifiergoogle
    'modules' => [
        'auth' => [
            'twoFactorProviders' => [
                'notifier' => [],
            ],
        ],
    ],
  1. 在需要 2FA 的表单中,需要添加 TwoFactorRequireValidator
    [
        'amount',
        TwoFactorRequireValidator::class,
        'userId' => $this->user->primaryKey,
        'providerName' => 'notifier',
        'codeAttribute' => 'code',
    ]

最后一个参数 codeAttribute 是非必须的。它是在 2fa 使用并在前端表单中直接处理(使用 Form 组件的 onTwoFactor 处理器)的情况下需要的,然后表单发送包含确认码(code)的同数据。

如果前端没有指定 onTwoFactor 处理器,则代码将在单独的表单(例如,在模态窗口)中输入,并通过 POST /api/v1/auth/2fa/<providerName>/confirm 方法发送到后端。这时不需要指定 codeAttribute