웹 응용 프로그램을 magento와 연결하려고합니다. 따라서 사용자가 웹 응용 프로그램에 로그온하면 자동으로 magento에 로그온하게됩니다.도메인을 통한 외부 사이트의 magento 로그인
더 간단하게하기 위해 간단한 로그인 양식으로 테스트하고 있습니다. 이제 magento가 설치되었으며 맞춤 API가 작성된 맞춤 모듈과 로그인 API를 호출하여 사용자 인증을 시도하는 PHP 양식이 있습니다. API를 모델
코드 : PHP를 양식
class Modulename_Model_Api extends Mage_Api_Model_Resource_Abstract
{
function login($email, $password)
{
Mage::app()->setCurrentStore("default");
Mage::getSingleton('core/session');
$session = Mage::getSingleton('customer/session');
if($session->login($email, $password)) {
return $session->getSessionId();
} else {
$this->_fault('login_fail');
return false;
}
}
}
코드 :
<?php
if (isset($_POST['email']) && isset($_POST['password'])) {
$proxy = new SoapClient('http://www.domain.com/magento/api/?wsdl');
$sessionId = $proxy->login('apiuser', 'apikey');
try {
$token = $proxy->call($sessionId, 'customer.login', array(
'email'=>$_POST['email'],
'password'=>$_POST['password']
));
} catch (Exception $e) {
echo $e->faultstring;
}
if ($token) {
setcookie('frontend', $token, time()+3600, "/magento/", ".domain.com");
header('Location: http://www.domain.com/magento/');
} else {
//some error handling
}
}
?>
<form method="POST">
<input type="text" name="email"/>
<input type="password" name="password"/>
<input type="submit" value="Login" />
</form>
지금까지, 로그 - 인 형태가 완벽하게 작동합니다. 그러나 다른 도메인에 PHP 폼을 넣으려고하면 실패합니다.
API 호출에서 세션 ID를 가져올 수 있습니다. 따라서 도메인 전체의 세션 ID로 쿠키를 설정하려고 할 때 가장 좋은 추측은 잘못된 것입니다.
아무도 도와 줄 수 있습니까?