Opracowałem rozszerzenie do Chrome, które wywołuje niektóre interfejsy API w mojej witrynie, które z kolei używają uwierzytelniania PHPAuth/PHPAuth. Zasadniczo, mam użytkownika, aby wprowadzić nazwę użytkownika i hasło do strony internetowej jako opcję rozszerzenia i mogę wywołać interfejs API logowania na mojej stronie internetowej w następujący sposób.Logowanie do witryny przy użyciu PHPAuth/PHPAuth za pośrednictwem rozszerzenia Chrome
if (isset($_POST['email']) && isset($_POST['password'])) {
$email = $_POST['email'];
$password = $_POST['password'];
if($auth->isLogged()) {
$userId = $auth->getSessionUID($_COOKIE[$authConfig->cookie_name]);
echo json_encode([
'userId' => $userId,
]);
die();
}
$login = $auth->login($email, $password, true);
if($login['error']) {
die($login['message']);
} else {
$userId = $auth->getSessionUID($login['hash']);
echo json_encode([
'userId' => $userId,
]);
die();
}
} else {
die('Error');
}
Powoduje to tymczasowe rozważenie uwierzytelnienia użytkownika, ale w rzeczywistości nie zaloguje użytkownika do witryny. Innymi słowy, po otwarciu strony chronionej hasłem za pomocą elementu iframe, wyświetla się formularz logowania użytkownika.
Czy ktoś może mi powiedzieć, co robię źle, lub lepszy sposób na to, czego potrzebuję.
Zasadniczo mam oszczędności użytkownikowi konieczność utrzymania rejestrowanie w każdym czasie i otworzyć chronionych stron, kiedy zostanie on wykonany, aby się zalogować.
prawdopodobnie związane z plików cookie nie jest set/przeniesionych wewnątrz iframe. Tylko zgaduję. – wOxxOm
Twój komentarz ma sens, ale czy w takim przypadku strona nie pojawi się po ponownym odświeżeniu? Nie rób tego. –