Używam tego poniżej kod do logowania i przekierowanie do strony konta:Magento: Zaloguj się i przekierowanie do strony konta z zewnątrz Magento
<?php
include('store/app/Mage.php');
Mage::app();
if($_POST && $_POST['login']['username'] && $_POST['login']['password']){
$email = $_POST['login']['username'];
$password = $_POST['login']['password'];
$session = Mage::getSingleton('customer/session');
try {
$log = $session->login($email, $password);
$session->setCustomerAsLoggedIn($session->getCustomer());
$customer_id = $session->getCustomerId();
$send_data["success"] = true;
$send_data["message"] = "Login Success";
$send_data["customer_id"] = $customer_id;
Mage::getSingleton('customer/session')->loginById($customer_id);
Mage_Core_Model_Session_Abstract_Varien::start();
}catch (Exception $ex) {
$send_data["success"] = false;
$send_data["message"] = $ex->getMessage();
}
}else {
$send_data["success"]=false;
$send_data["message"]="Enter both Email and Password";
}
echo json_encode($send_data);
?>
A potem w aktach skąd Robię żądania ajax używam ten kod:
if(data.success){
window.location = "http://domain.com/store/customer/account/"
}
Ale zawsze pokazuje użytkownika jako wylogowania, ale mam prawidłowy identyfikator klienta, a także sukces.
Czy możesz mi powiedzieć, co mi brakuje w moim kodu? Ponieważ jestem w stanie uzyskać nazwę klienta, ale nadal, gdy odwiedzam ten sklep, pokazuje on wciąż niezalogowanego użytkownika. – atif
Myślę, że nie jesteś dokładnie zalogowany, tylko wywołujesz zapisane informacje o sesji, (utworzona sesja logowania przeglądarki i zapisana w sesja magento) z wielu powodów. Najpierw musisz użyć początku sesji. Po drugie, musisz ustawić sklep i musi mieć sesję administratora, załaduj kontroler sesji rdzenia magento. etc etc ... Po prostu użyj funkcji w mojej odpowiedzi i zadziała ... – Martin
Dostaję komunikat ".. user zalogowany jako USERNAME", ale nadal, gdy próbuję odwiedzić stronę konta sklepu, przekierowuje mnie do strony logowania . – atif