Php Laravel 6不要求对社交登录进行电子邮件验证

Php Laravel 6不要求对社交登录进行电子邮件验证,php,laravel,laravel-socialite,Php,Laravel,Laravel Socialite,我是新来的。我已经使用auth命令创建了登录和注册表单 我已激活登录的电子邮件验证。此外,我还创建了Gmail,Fb等社交登录使用社交名媛基于以下链接 现在,我不需要对那些通过社交网站登录的用户进行电子邮件验证,但手动注册是必需的 我的家庭控制器 namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; use Illuminate\Http\Request; class HomeController extends

我是新来的。我已经使用auth命令创建了登录和注册表单

我已激活登录的电子邮件验证。此外,我还创建了Gmail,Fb等社交登录使用社交名媛基于以下链接

现在,我不需要对那些通过社交网站登录的用户进行电子邮件验证,但手动注册是必需的

我的家庭控制器

namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class HomeController extends Controller
{
/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
     $this->middleware(['auth', 'verified']);
}

/**
 * Show the application dashboard.
 *
 * @return \Illuminate\Contracts\Support\Renderable
 */
public function index()
{
    return view('frontend.index');
}
public function seedr()
{
    $users=DB::table('users')->get();

    return view('backend.seedr',['users'=>$users]);
}

}
我的社会控制者

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator,Redirect,Response,File;
use Socialite;

use App\User;
class SocialController extends Controller
{
   public function redirect($provider)
  {
    //echo $provider;die;
    return Socialite::driver($provider)->redirect();
  }

  public function callback($provider)
 {

   $getInfo = Socialite::driver($provider)->user();

   $user = $this->createUser($getInfo,$provider);

  auth()->login($user);

  return redirect()->to('/home');

 }
 function createUser($getInfo,$provider){

  $user = User::where('provider_id', $getInfo->id)->first();

 if (!$user) {
  //$mytime = Carbon::now();
 $currenttime=date("Y-m-d h:i:s a", time());

 $user = User::create([
    'name'     => $getInfo->name,
    'email'    => $getInfo->email,
    'provider' => $provider,
    'provider_id' => $getInfo->id,

]);
 //die;
}
return $user;
}
}

您可能有一列email_verified_,其中存储了验证电子邮件地址的日期,默认情况下,该列为null,这意味着用户未经验证。在你的SocialController@createUser将其设置为当前日期:

 $user = User::create([
    'name'     => $getInfo->name,
    'email'    => $getInfo->email,
    'provider' => $provider,
    'provider_id' => $getInfo->id,
    'email_verified_at' => now()
]);

您可能有一列email_verified_,其中存储了验证电子邮件地址的日期,默认情况下,该列为null,这意味着用户未经验证。在你的SocialController@createUser将其设置为当前日期:

 $user = User::create([
    'name'     => $getInfo->name,
    'email'    => $getInfo->email,
    'provider' => $provider,
    'provider_id' => $getInfo->id,
    'email_verified_at' => now()
]);

不要像上面提到的@Raftel那样使用它!当你将email_verified_at添加到你的$filleble变量中时,黑客可能会通过发送一个隐藏的输入来破坏你的整体,例如不要像上面提到的@Raftel那样使用它!当您将email_verified_at添加到$filleble变量中时,黑客可能会通过发送隐藏的输入来破坏您的整体。例如,我已经尝试过这个方法,但它不起作用,email_verified_at没有插入数据库,页面被重定向到/email/verify。它现在起作用了,我忘了在用户类的$filleble数组中添加“email\u verified\u at”。谢谢,我已经尝试过了,但它不起作用,email\u verified\u at没有插入数据库,页面被重定向到/email/verify。现在起作用了,我忘了在用户类的$filleble数组中添加“email\u verified\u at”。非常感谢