如何注册OAuth(脸书,推特,谷歌)



我使用Laravel(5)作为我的php框架,它最近添加了一个用于社交身份验证的库(facebook、谷歌、推特和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登录方法一起运行。

最新更新