Пример #1
0
     if ($UID = Energine\share\gears\AuthUser::authenticate($_POST['user']['username'], $_POST['user']['password'])) {
         E()->UserSession->start($UID);
     } else {
         $response->addCookie(UserSession::FAILED_LOGIN_COOKIE_NAME, E()->Utils->translate('ERR_BAD_AUTH'), time() + 60);
     }
     //о том прошла ли аутентификация успешноыны LoginForm узнает из куков
 } elseif ($logout) {
     $_GET['return'] = '/';
     E()->UserSession->kill();
 } elseif ($fbAuth && ($appID = Primitive::getConfigValue('auth.fb.appID')) && ($secretKey = Primitive::getConfigValue('auth.fb.secretKey'))) {
     try {
         $fb = new FBOAuth(['appId' => $appID, 'secret' => $secretKey]);
         $userInfo = $fb->api('/me?fields=id,name,email,picture.type(small)');
         if (is_array($userInfo) && !isset($_REQUEST['error'])) {
             //Смотрим есть ли такой юзер в списке зарегистрированных
             if (!($user = User::getFBUser($userInfo['id']))) {
                 //Если нет - создаем
                 $userData = ['u_name' => isset($userInfo['email']) ? $userInfo['email'] : $userInfo['id'] . '@facebook.com', 'u_fbid' => $userInfo['id'], 'u_password' => User::generatePassword(), 'u_fullname' => $userInfo['name'], 'u_avatar_img' => $userInfo['picture']['data']['url']];
                 $user = new User();
                 $user->create($userData);
             }
             E()->UserSession->start($UID);
         }
     } catch (\Exception $e) {
         $response->addCookie(UserSession::FAILED_LOGIN_COOKIE_NAME, $e->getMessage(), time() + 60);
         goto escape;
     }
 } elseif ($vkAuth && ($appID = Primitive::getConfigValue('auth.vk.appID')) && ($secretKey = Primitive::getConfigValue('auth.vk.secretKey'))) {
     try {
         $vk = new VKOAuth(['appId' => $appID, 'secret' => $secretKey], $_GET['return']);
         $vk->connect();