Таким образом, вы хотите реализовать вход в Google и Facebook / Twitter без использования сторонних сервисов. Это означает, что вам нужно реализовать OpenID логин (для Google) и OAuth (для Facebook / Twitter).
Первый OpenID. Вы можете скачать LightOpenID хороший легкий класс OpenID для PHP. Довольно легко реализовать. Некоторые примеры кода, как использовать этот класс.
// Set up your OpenID object
$openid = new LightOpenID('http://yourdomain.com');
$openid->returnUrl = 'http://yourdomain.com/after/login/user/goes/here';
$openid->identity = 'https://www.google.com/accounts/o8/id'; // OpenID provider URL
$openid->required = array('namePerson/friendly', 'contact/email');
// Step 1: Redirect the user to the OpenID provider
if (!$openid->mode) // If not authenticated
header('Location: ' . $openid->authUrl()); // Redirect to provider
// Step 2: User returned, sign the user into our application
if ($openid->validate()) {
// OpenID authentication is successful
// Sign in the user and read requested attributes
$attrArray = $openid->getAttributes();
}
Это должно помочь вам начать с части OpenID. Селектор OpenID - это не более чем селектор для идентификационного URL.
Затем следует реализовать вход в систему OAuth для поддержки входа в Facebook и Twitter. Существует достаточно документации о том, как реализовать поддержку входа в Facebook и Twitter.
Для Facebook вы должны прочитать сайт разработчика по аутентификации , это не слишком сложно. Твиттер использует тот же протокол и также имеет хорошую документацию по этой теме.
Если вы не хотите реализовывать это самостоятельно, взгляните на библиотеки OAuth, которые вы можете включить в свое приложение, например socialoauth (поддерживает оба) или twitteroauth (поддерживает twitter) , Google поможет вам найти гораздо больше таких библиотек.
Просто начните реализацию с библиотекой, прочитайте код, комментарии и документы и задайте вопросы по StackOverflow, если вы застряли. :)