如何使用 OAuth(facebook、twitter、google)进行注册?

How to do a Sign Up with OAuth (facebook, twitter, google)?

我使用 Laravel (5) 作为我的 php 框架,它最近添加了一个用于社交身份验证的库(facebook、google、twitter 和 github)。

我一直想知道您将如何使用 OAuth 进行注册,通过 OAuth 获取用户的电子邮件可以轻松完成登录,检查它是否存在于您的数据库中,如果存在,则登录那个用户。但是你会如何注册?

Mathius - 我最近在一个网站上工作,做的事情与你所描述的类似,这对我有用:

public function syncUserDetails($userData)
{
    // First I check to see if there is a user in the DB
    // with the oAuth email address
    if ( $user = $this->user->where('email', $userData->email)->first() )
    {
        // If there is a user, I simply update their local info
        // with what is on their oAuth account

        $user->token = $userData->token;
        $user->google_id = $userData->id;
        $user->name = $userData->name;
        $user->avatar = $userData->avatar;
        $user->first_name = $userData->user['given_name'];
        $user->last_name = $userData->user['family_name'];
        $user->save();

        return $user;
    }

    // Otherwise, if the user doesn't already exist,
    // I create them in my local user's DB

    return $this->user->firstOrCreate([
        'email'      => $userData->email,
        'token'      => $userData->token,
        'google_id'  => $userData->id,
        'name'       => $userData->name,
        'avatar'     => $userData->avatar,
        'first_name' => $userData->user['given_name'],
        'last_name'  => $userData->user['family_name']
    ]);
}

这就是我用来登录用户的。但是,您可以 运行 这与常规 Laravel 登录方法一样容易。