function user_session_create_token($userId, $secretSource = null) { lets_use('core_config', 'storage_nosql'); if (!$secretSource) { $secretSource = md5(microtime(1) . mt_rand(1, 99999999) . microtime(1)); } $secret = user_session_build_secret($secretSource); $setResult = user_session_set_secret($userId, $secret); if (!$setResult) { return false; } return user_session_build_token($userId, $secret); }
function web_controller_auth_auth() { $email = web_router_get_param('email'); $pass = web_router_get_param('pass'); if (web_router_get_method() === 'POST') { lets_use('user_register'); $userId = user_register_get_user_id_by_email($email); if ($userId) { lets_use('user_session'); core_log('user found: ' . $userId); $realSecret = user_session_get_secret($userId); $checkSecret = user_session_build_secret($pass); if ($realSecret === $checkSecret) { $token = user_session_build_token($userId, $checkSecret); user_session_write_session_cookie($userId, $token, 86400 * 30); web_response_redirect('/'); return; } } web_router_render_page('auth', 'auth', ['msg' => 'Для данного адреса почты и пароля не найдено ни одного пользователя.']); return; } web_router_render_page('auth', 'auth'); }