Primero, agregue un par de objetos de autenticación personalizados vacíos. Reutilizaremos la misma lógica que usa FormAuthenticate (es decir, usa datos POST para verificar la base de datos de un usuario), pero simplemente cambie el modelo dentro de la configuración del objeto (más adelante).
aplicación/controlador/Componente/auth/ModelOneAuthenticate.php
<?php
App::uses('FormAuthenticate', 'Controller/Component/Auth');
class ModelOneAuthenticate extends FormAuthenticate {
}
aplicación/controlador/Componente/auth/ModelTwoAuthenticate.php
<?php
App::uses('FormAuthenticate', 'Controller/Component/Auth');
class ModelTwoAuthenticate extends FormAuthenticate {
}
luego decirle a su aplicación para utilizar estos objetos para autenticarse, y decirle qué modelo usar. También puede personalizar los campos aquí. En su 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'
)
)
)
);
El primer objeto de autenticación comprobaría la tabla model_ones
un nombre de usuario y contraseña en my_custom_username_field
en some_password_field
, mientras que el segundo comprobaría model_twos
utilizando los estándares username
y password
campos.
Eso se parece a lo que necesito, pero para una versión anterior de la torta, tal vez @deizel verá esto :) – 472084
El mismo tipo de concepto, excepto que el 'identificador 'se movió a los objetos de autenticación y se llama' authenticate' (o específicamente el método '_findUser' en' BaseAuthenticate'). – jeremyharris
Así que simplemente cambie 'identify' a' authenticate'? http://codepad.viper-7.com/1BX9fE – 472084