0

一部の顧客を管理者ユーザーとして管理者に自動ログインしたいと考えています。
アカウント ダッシュボードにリンクがあり、自動ログインを行います。
これまで、顧客の詳細を管理者ユーザー アカウントと同期するように実装されていたため、顧客のメールとその ID をパスワードとして手動で管理者にログインできました。
ただし、リンクをクリックするだけで実装する方法に行き詰まっています。

どんな助けでも大歓迎です。

4

1 に答える 1

2

顧客を管理者ユーザーとして登録し、管理者ユーザー名を取得したことを考慮してください。彼を自動ログインさせる最も簡単な方法は、magento ルートにファイルを作成することです

require_once 'app/Mage.php';
umask(0);
$app = Mage::app('default');
Mage::getSingleton('core/session', array('name' => 'adminhtml'));
$username = $_POST['username'];
$user = Mage::getModel('admin/user')->loadByUsername($username);

次に、秘密鍵を開始します

if (Mage::getSingleton('adminhtml/url')->useSecretKey()) {
  Mage::getSingleton('adminhtml/url')->renewSecretUrls();
}

ログインとセッションのセットアップ

$session = Mage::getSingleton('admin/session');
$session->setIsFirstVisit(true);
$session->setUser($user);
$session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
Mage::dispatchEvent('admin_session_user_login_success',array('user'=>$user));

最後に、好きな URL にリダイレクトします

//$url = Mage::helper("adminhtml")->getUrl("acompany_mymodule/index/index");
$url = Mage::getUrl('adminhtml/*/*');
$url = str_replace('autologin.php', 'index.php', $url);
header('Location:  '.$url);
exit();

したがって、投稿リクエストでユーザー名を使用してこのURL BASE_URL/autologin.phpにフォームを送信するボタンをどこにでも作成できます

于 2013-11-06T13:34:25.923 に答える