Najpierw dodaj kilka pustych niestandardowych obiektów uwierzytelniających. Wykorzystamy ponownie tę samą logikę, której używa FormAuthenticate (to znaczy używa danych POST do sprawdzenia bazy danych dla użytkownika), ale po prostu zmienimy model w ustawieniach obiektu (później).
app/Controller/Component/Auth/ModelOneAuthenticate.php
<?php
App::uses('FormAuthenticate', 'Controller/Component/Auth');
class ModelOneAuthenticate extends FormAuthenticate {
}
app/Controller/Component/Auth/ModelTwoAuthenticate.php
<?php
App::uses('FormAuthenticate', 'Controller/Component/Auth');
class ModelTwoAuthenticate extends FormAuthenticate {
}
Następnie poinformować aplikację do korzystania te obiekty do uwierzytelnienia i powiedz, jakiego modelu użyć. Tutaj możesz również dostosować pola. W swojej AppController:
public $components = array(
'Auth' => array(
'authenticate' => array(
'ModelOne' => array(
'userModel' => 'ModelOne',
'fields' => array(
'username' => 'my_custom_username_field',
'password' => 'some_password_field'
)
),
'ModelTwo' => array(
'userModel' => 'ModelTwo'
)
)
)
);
Pierwszym celem uwierzytelnienia by sprawdzić tabelę model_ones
o podanie nazwy użytkownika i hasła w my_custom_username_field
w some_password_field
, natomiast drugi będzie sprawdzić model_twos
użyciu standardowych username
i password
pól.
To nie wygląda tak, jak trzeba, ale do starszej wersji z masłem, a może @deizel zobaczymy :) – 472084
Ten sam rodzaj pojęcia, z wyjątkiem "identyfikatora" został przeniesiony do obiektów uwierzytelniających i nazywa się "uwierzytelnianie" (lub konkretnie "_findUser" na "BaseAuthenticate"). – jeremyharris
Po prostu zmień "identyfikujące" na "uwierzytelnianie"? http://codepad.viper-7.com/1BX9fE – 472084