2014-12-19 4 views
0

제 3 자 API에 연결하는 Magento Extension을 구현하고 있습니다. 필자는 Magento에게 새로운 것이지만 일반적으로 MVC 시스템에 익숙합니다.Magento에서 타사 서비스에 대한 자격 증명을 저장할 올바른 위치는 어디입니까?

제 질문은 간단히 "이 서드 파티 API에 액세스하는 데 사용 된 자격 증명을 어디에 저장해야합니까? 데이터베이스 테이블을 만들어 저장할 수는 있지만 과도한 느낌입니다. Magento 캐시를 키/값 저장소로 사용하여 언급 한 사람들은 너무 약해 보입니다. Magento가 설정 객체 (실제로 파고 들지는 않음)를 갖고있는 것 같습니다.

이들의

어느 (있는 경우) 장기적으로 나에게 가장 적은 두통의 원인이됩니다 무엇입니까? '올바른'인가?

이 는, 내가 소금/해시에 이러한 자격 증명을 필요가있는 것은 물론이지만

내가 추측 티 그는 같은 질문을 '소금을 저장해야하는 곳'에 적용합니까?

답변

1

과 같은 일반적인 Magento 연습은으로 데이터베이스에 저장해야합니다. 데이터베이스 필드와 사용자 인터페이스를 정의하여 Extension의 코드를 통해 이러한 자격 증명을 유지할 수 있습니다.

코어 코드베이스의 완벽한 예가 운송 업체 모듈입니다. app/code/core/Mage/Usa/etc/config.xml에서보세요 :

... 
<fedex> 
    <account backend_model="adminhtml/system_config_backend_encrypted"/> 
    <meter_number backend_model="adminhtml/system_config_backend_encrypted"/> 
    <key backend_model="adminhtml/system_config_backend_encrypted"/> 
    <password backend_model="adminhtml/system_config_backend_encrypted"/> 
    ... 
</fedex> 
... 

을 자격 증명이 방법을 저장함으로써, 비즈니스 사용자가 입력하거나 자격 증명을 업데이트 할 수있는 곳이 필드는 젠토의 관리 섹션에서 사용할 수 있습니다 그리고 그들은에 암호화 된 값으로 저장됩니다 데이터베이스 Mage::getStoreConfig('carriers/fedex/account')을 사용하여 코드에서 액세스 할 수 있습니다. 희망적으로 이것은 당신이 올바른 방향으로 향하게 할 것입니다.

+0

암호화를 언급하는 보너스 포인트! –

+0

하, 고마워. 그래도 나는 보너스 포인트를받을 가치가 있다는 것을 모른다. 귀하는 귀하의 질문에서 구체적으로 설명합니다. ;) –

관련 문제