1

2種類のログインを管理するコントローラーを開発しています:

  1. メールとパスワード
  2. Eメール

2 番目のタイプには電子メール フィールドのみがあります。その理由は、サードパーティのプロバイダーがログに記録されているユーザーの電子メールを提供してくれるためですが、その電子メールがデータベースに存在するかどうかも確認する必要があります。

したがって、2種類の認証があります。問題は次のとおりです。

2 番目のタイプに Auth を使用できますか? (メールチェックのみ)

ありがとうございました

4

3 に答える 3

1

ここでAuthを使用する理由がわかりません(このアプローチではAuthメカニズム全体を悪用しています。単純なルックアップを処理するための大きなオーバーヘッドでもあります)。find(first) を使用して電子メールが存在するかどうかを確認し、それに応じて結果を使用します。それだけです。

于 2012-07-30T14:15:00.293 に答える
0

これを読む

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

これを試して:-

<?php
// Pass settings in $components array
public $components = array(
    'Auth' => array(
        'loginAction' => array(
            'controller' => 'users',
            'action' => 'login',
            'plugin' => 'users'
        ),
        'authError' => 'Did you really think you are allowed to see that?',
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email')
            )
        )
    )
);

?>

または

<?php
// Pass settings in $components array
public $components = array(
    'Auth' => array(
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email')
            )
        )
    )
);
于 2012-07-30T14:20:43.127 に答える
0

このリンクで確認できます: http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#configuring-authentication-handlers

<?php
// Pass settings in $components array
public $components = array(
    'Auth' => array(
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email')
            )
        )
    )
);

私にとってこれはあなたにとってうまくいきます!

于 2012-07-30T13:59:28.443 に答える