Czasami bywa tak, że wszystko zawodzi i nie ma możliwości zresetować hasła za pomocą opcji „przypomnij hasło”. Wówczas w sytuacji krytycznej szybka zmiana hasła będzie możliwa, jedynie posiadając dostęp shellowy na hostingu. Niestety nie wszystkie mają takie możliwości. Kiedy jednak jest dostęp do konsoli wystarczy jeden prosty krok.
Reset hasła Drupal 8
Aby zresetować hasło, należy przygotować plik php, który wykonasz na serwerze w głównym katalogu strony. Zacznijmy od początku. Otwórz notatnik i umieść tam kod:
<?php
use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpFoundation\Request;
if (pathinfo(__FILE__, PATHINFO_FILENAME) == 'admin-pass-reset') {
die('Prosze zmien Twoja nazwe pliku na losowa aby moc przejsc do dzialania');
}
// Boot Drupal.
$autoloader = require __DIR__ . '/autoload.php';
$request = Request::createFromGlobals();
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod', FALSE);
$kernel->boot();
// Get password hasher service.
$password_hasher = $kernel->getContainer()->get('password');
// Hash password.
if (isset($_GET['pass']) && !empty($_GET['pass'])) {
$newhash=$password_hasher->hash($_GET['pass']);
}
else {
die('Retry with ?pass=PASSWORD set in the URL');
}
// Update user password.
$updatepass = Drupal::database()->update('users_field_data')
->fields(array(
'pass'=>$newhash,
'name'=>'TWOJ_LOGIN',
'mail'=>'TWOJ@E-MAIL.PL'
))
->condition('uid', '1', '=')
->execute();
// Clean user 1 cache.
Drupal::cache('entity')->delete('values:user:1');
print "Wykonano, usun ten plik z serwera - tak szybko jak to mozliwe!";
Reset hasła krok po kroku ze skryptem php
np. ed78pc.php
twojadomena.pl/ed78pc.php?pass=TU_WPISZ_SWOJE_NOWE_HASLO Teraz po otrzymaniu pozytywnej wiadomości w oknie przeglądarki, należy natychmiast usunąć plik z serwera!!