Ответ 1
Итак, вы хотите внедрить логин 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 вы должны прочитать сайт разработчика при аутентификации, это не слишком сложно. Twitter использует тот же протокол, а также имеет хорошую документацию по этой теме.
Если вы не хотите его реализовывать самостоятельно, взгляните на библиотеки OAuth, которые вы можете включить в свое приложение, например socialoauth (поддерживает оба) или twitteroauth (поддерживает твиттер). Google поможет вам найти гораздо больше таких библиотек.
Просто начните реализацию с библиотеки, прочитайте код, комментарии и документы и задайте вопросы по StackOverflow, если вы застряли.:)