繁体   English   中英

如何使用社交版本2.1在Laravel 5.1中未经身份验证而登录Facebook和Google?

[英]How login with Facebook and Google without authentication in Laravel 5.1 using socialite version 2.1?

'facebook' => [
    'client_id' => 'id',
    'client_secret' =>
    'fgdfgsdfgrtt45453',
    'redirect' => 'http://example.com/callback',
],

route.php中

Route::get('/redirect', 'SocialAuthFacebookController@redirect');
Route::get('/callback', 'SocialAuthFacebookController@callback');

而且我在App中添加了Services/SocialFacebookAccountService.php目录。

SocialFacebookAccountService.php

<?php

namespace App\Services;

use App\SocialFacebookAccount;
use App\User;
use Laravel\Socialite\Contracts\User as ProviderUser;

class SocialFacebookAccountService {

    public function createOrGetUser(ProviderUser $providerUser) {
        $account = SocialFacebookAccount::whereProvider('facebook')
                ->whereProviderUserId($providerUser->getId())
                ->first();
        echo 'Account info : ';

        if ($account) {
            return $account->user;
        } else {

            $account = new SocialFacebookAccount([
                'provider_user_id' => $providerUser->getId(),
                'provider' => 'facebook'
            ]);

            $user = User::whereEmail($providerUser->getEmail())->first();

            if (!$user) {

                $user = User::create([
                            'email' => $providerUser->getEmail(),
                            'name' => $providerUser->getName(),
                            'password' => md5(rand(1, 10000)),
                ]);
            }

            $account->user()->associate($user);
            $account->save();

            return $user;
        }
    }

}

请帮助,如何在回调中获取用户信息。

在您的callback方法中:

   public function callback($provider=facebook)
   {
      if($user = $this->socialite->with($provider)->user()){
         dd($user); //user details
      }else{
         return 'something went wrong';
      }
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM