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_register() { if (web_router_get_method() !== 'POST') { web_router_render_page('auth', 'register', []); return; } $email = web_router_get_param('email'); if (!$email) { web_router_render_page('auth', 'register', ['msg' => 'Введите email', 'wrong' => 'email']); return; } preg_match('/[\\w\\d]+@[\\w\\d]+[\\w\\d\\.]+/', $email, $matches); if (!isset($matches[0])) { web_router_render_page('auth', 'register', ['msg' => 'Введите корректный email', 'wrong' => 'email']); return; } lets_use('user_register'); $authUserId = user_register_get_user_id_by_email($email); if ($authUserId) { web_router_render_page('auth', 'register', ['msg' => 'Пользователь с таким email уже существует', 'wrong' => 'email']); return; } $userName = web_router_get_param('name'); if (!$userName) { web_router_render_page('auth', 'register', ['msg' => 'Введите ваше имя', 'wrong' => 'name']); return; } $pass = web_router_get_param('pass'); if (!$pass || mb_strlen($pass) < 6) { web_router_render_page('auth', 'register', ['msg' => 'Пароль должен быть задан и не менее 6ти символов', 'wrong' => 'pass']); return; } $userId = user_register_new_user($userName, $email, $pass); if (!$userId) { web_router_render_page('auth', 'register', ['msg' => 'Ошибка при сохранении пользвателя, повторите позднее', 'wrong' => 'error']); return; } lets_use('user_session'); $secret = user_session_get_secret($userId); $token = user_session_build_token($userId, $secret); user_session_write_session_cookie($userId, $token, 86400 * 30); web_router_redirect('/'); }