К сожалению, вы можете использовать только имя столбца 'password'
с включенными драйверами database
и eloquent
, поскольку имя столбца жестко запрограммировано в поставщике. Таким образом, ваша единственная ставка - создать свой собственный пользовательский драйвер, расширив Eloquent. Это может быть сделано в четыре простых шага, как описано ниже:
1. Создайте свой собственный файл класса драйвера в app/extensions/CustomUserProvider.php
файл со следующим содержимым:
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\EloquentUserProvider;
use Illuminate\Auth\UserProviderInterface;
class MyCustomUserProvider extends EloquentUserProvider implements UserProviderInterface {
public function retrieveByCredentials(array $credentials)
{
$query = $this->createModel()->newQuery();
foreach ($credentials as $key => $value) {
if ($key != 'SystemUserPassword') $query->where($key, $value);
}
return $query->first();
}
public function validateCredentials(UserInterface $user, array $credentials)
{
return $this->hasher->check($credentials['SystemUserPassword'], $user->SystemUserPassword);
}
}
2. Добавить "app/extensions"
в ваш composer.json
в classmap
разделе:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/extensions" // <-- add this line here
]
},
Затем запустите php composer dump-autoload
.
3. В файле app/start/global.php
добавить это зарегистрировать свой собственный драйвер:
Auth::extend('mydriver', function($app)
{
return new MyCustomUserProvider($app['hash'], Config::get('auth.model'));
});
4. Затем просто установить драйвер в вашем app/config/auth.php
к этому:
'driver' => 'mydriver',
Этот был протестирован, и он работает отлично.
Имейте в виду, что это будет работать при условии, пароли пользователей были хэшируются с Hash::make()
метод Laravel предложений и хранятся таким образом в базе данных. Если нет, то вам необходимо настроить метод validateCredentials
в MyCustomUserProvider
с помощью собственного метода сравнения между обычным и хешированным паролем.
спасибо, попробуем это! :) – BourneShady