データベースにセッション情報を格納するためのセットアップ認証があります。 ci_sessionテーブルには、次のフィールドcodeigniterでion authを使用している場合にユーザーになりすまし
ID、IP_ADDRESS、タイムスタンプ、データ
を持って、私は私ができるようにしたい、このコード
$this->db->order_by('id', 'ASC');
$this->db->limit(1);
$last_session = $this->db->get('ci_sessions')->row_array();
print_r($last_session['data']);//prints current session data
と私の現在のセッションのデータをフェッチすることができますログインしたユーザーをオンザフライで切り替えるために、この機能をこの要点から借用しました。https://gist.github.com/anonymous/4440000
私はmodifを持っていますこのよう
public function impersonate()
{
$identity = '[email protected]';
$goall = $this->config->item('identity', 'ion_auth');
$query = $this->db->select($goall . ', username, email, id, active, last_login')
->where($goall, $this->db->escape_str($identity))
->limit(1)
->get('users');
if ($query->num_rows() === 1)
{
$user = $query->row();
$session_data = array(
'identity' => $goall,
'username' => $user->username,
'email' => $user->email,
'user_id' => $user->id, //everyone likes to overwrite id so we'll use user_id
'impersonating' => true
);
$this->session->set_userdata($session_data);
return TRUE;
}
else {
return FALSE;
}
}
IED ci_sessionsのデータ列がユーザーを切り替えることができるようにするには、この
__ci_last_regenerate|i:1491200360;identity|s:15:"[email protected]";email|s:15:"[email protected]";user_id|s:1:"1";old_last_login|s:10:"1491199371";last_check|i:1491200371;message|s:29:"<p>Logged In Successfully</p>";__ci_vars|a:1:{s:7:"message";s:3:"old";}
のように見える、私は新しいユーザーの詳細情報を反映するために、データ列を更新します。
データ列データをデコードしようとしましたが、有効なjsonは無効です。このツールを使用することもできますhttp://freeonlinetools24.com/json-decode
ログインしたユーザーを切り替えるために、データフィールドinroderを更新するにはどうすればよいですか。