質問: jfactory::getapplication()->login(array('username' => $username, 'password' => $password), array('remember' => true)); 私の質問は: fbから許可を得た後、電子メールとパスワードを入力せずにjoomlaにログインしたいので、どのモジュール/ヘルパー/関数を使用する必要がありますか?
回答: 製品の購入、コメントの投稿など、ユーザーのアクションがどこかに記録されている場合、ユーザーのidまたはユーザーのユーザー名が利用可能である必要があります。この場合、ユーザーのjoomlaアカウントを作成する必要があります。ステップ1.ユーザーがfacebookに正常にログインするステップ2.a.彼がすでにアカウントを持っている場合(eメールをチェックするなどにより)、アカウントのユーザー名ログインを取得します(パスワードは必要ありません)。ステップ2.b.彼がアカウントを持っていない場合、あなたは彼のためにダミーアカウントを作成します。より良い方法は、ユーザー名(およびパスワード)を提供するように依頼することです。これは一度だけ行うことを知らせてください。何らかの理由でfacebookログインを使用できない場合、このユーザー名を使用してサイトにログインできます。彼のユーザー名を使用してログインします。これは、コミュニティコンポーネントでこのタスクに使用するサンプルコードです。 /* * get user info by email address. * if user is already registered, we log user in. if we haven't saved * this connection yet, we save it from now. * if user is not registered yet, we redirect user to register function. */ $db = jfactory::getdbo(); $query = $db->getquery(true) ->select($db->quotename(array('id', 'username'))) ->from($db->quotename('#__users')) ->where($db->quotename('email') . ' = ' . $db->quote($email)); $user = $db->setquery($query)->loadobject(); if (isset($user->id)) { // log user in. $options = array('action' => 'core.login.site'); $response = array('username' => $user->username); jpluginhelper::importplugin('user'); $result = $app->triggerevent('onuserlogin', array($response, $options)); $app->redirect(jroute::_('index.php?itemid=' . $itemid, false)); return true; } else { $app->redirect(jroute::_('index.php?option=com_cmcommunity&task=registration.socialregister&network=' . $this->pluginid, false)); return false; }