如何在Laravel 5.1中使用Github,Facebook,Gmail和Twitter登录?

vis*_*ion 8 php laravel laravel-socialite

我正在尝试使用Laravel 5.1中的社交网站登录.我已经安装了社交网站并遵循以下教程:

https://mattstauffer.co/blog/using-github-authentication-for-login-with-laravel-socialite

http://tutsnare.com/social-authentication-in-laravel-5/

我已经按照每一步,当尝试使用Github登录时,它重定向到Github并在登录后重定向到URL回调,但我的问题是它不会将用户数据存储在我的数据库中.

更新1

现在我的问题是如何使用社交网络验证用户.以下是我的代码,但它会抛出一个错误,说明未定义的索引密码.该错误因为Auth::attempt()有passsword参数.

if (Auth::attempt(['email' => $email, 'user_id' => $user_id])) {
  return redirect()->intended('user/UserDashboard');
} else {
  here i am going to insert if user not logged in already
}
Run Code Online (Sandbox Code Playgroud)

更新2

经过一些研究,我意识到我需要创建自定义身份验证驱动程序.如果有任何想法请发表您的答案

一年前提出同样的问题

laravel使用谷歌帐户登录

Adi*_*iri 6

那么我假设的第一件事就是你跑了php artisan migrate(这可能是你的主要问题).

接下来在将数据存储到数据库时遇到的问题,您是否从该类 连接到数据库\App\User?如果你给它命名了不同的东西我请求你在第一个之后更改那个部分\App\[YourClassName].

好吧,如果它正常工作,你可能会遇到重新获取数据的问题.试着在某种不同的路线上尝试这样做:

<?php
    //Routes.php

    Route::get('trygithub', function(){
        $user = Socialize::with('github')->user()
        dd($user);
    });
Run Code Online (Sandbox Code Playgroud)

如果你在屏幕上得到一些输出,那就没关系.如果您没有得到任何东西,请尝试检查您的github配置.

还有一件事......如果你没有获得所需的输出,请尝试在下面评论.但我非常肯定这些肯定会奏效.

Update-1答案:

如果您想尝试为您的用户登录,并且您正在使用任何社交个人资料,例如让我们说FB,您需要这样: https://maxoffsky.com/word/wp-content/uploads/2013/08/Social-Logon.png

而且这不仅仅是FB的一个案例,你得到一些像谷歌这样的特定代码,你得到一个刷新令牌代码,在twitter中有一个永久访问令牌和秘密.所以试着去尝试.或者,将一个特定术语作为用户的密码.str_random()可能会有所帮助,我强烈建议而不是这两个.

更新-2回答:

我不建议通过这个,因为你不会通过重新发明轮子得到任何东西.但是如果你想要经历那个令人讨厌的过程,那么就是链接.

http://laravel.com/docs/5.1/authentication#adding-custom-authentication-drivers