私はzfcuserを使用しています。ユーザにパスワードを要求する代わりにIPアドレスでログインしたいのですが、IPはDBに格納されており、ユーザ名/ 、IPがauthenticate.preイベントを使用してDBから取得された私のコードは次のとおりです。ZfcUser IPアドレスでログインする[Zend Framework 2]
ます$ this->リスナー[] = $ sharedManager->( 'ZfcUser \認証\アダプタ\ AdapterChain'、 'authenticate.pre' を添付します、配列($ this、 'LoginIp'));
LoginIp方法は次のとおりです。
public function loginIp(Event $e) {
$em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
//Get user from DB
$user = $em->getRepository('LcUser\Entity\User')
->findOneBy(array('email' => $_POST['identity']));
//Get IP Address from Group
$group = $em->getRepository('LcGroup\Entity\Group')
->findOneBy(array('id' => $user->getGroup()));
//Check if IP of organization and current machine is same,
//Set authentication with username from user and password from DB
if($group->getIpAddresses()==$_SERVER['SERVER_ADDR']){
$_POST['credential']=$user->getUnhashedPassword();
}
}
質問 私はDBからその新しい値を割り当てることにより、$ _POST [「資格」]値を更新していますが、この代わりにプロセスzfcuser処理されません。ログインフォームを送信して来る古い値ですか? IPとユーザー名とパスワードなしでユーザーにログインするためにログイン資格情報を更新する方法を理解する上で助けが必要ですか?
あなたは正しいですが、私はこの状況に対処しています。特定のグループに所属するユーザー名とグループにDBに格納されているIPアドレスを要求しています。だから、dbに格納されているパスワードを尋ねる代わりに、私はユーザー名とIPを求めています。ありがとう –
@ ZahoorAhmadそして、ユーザーが同じ名前を使用するとどうなりますか? – Wilt
ユーザー名/電子メールはzfcuserで一意です。独自の電子メール/ユーザー名を持つユーザーは、あらかじめ定義されたIPでユーザー名を使用してログインするだけで作成されています。 –