繁体   English   中英

使用社交身份验证详细信息从内置登录系统登录

[英]Using social authenticaion details to login from built in login system

我既有内置的laravel也有社交认证。 假设如果用户使用Facebook登录,我fb_id用户详细信息(例如fb_idusernameemail等)存储到可从内置登录系统进行身份验证的users表中。这样,我可以使用laravel Auth

$fb_user = Socialite::driver('facebook')->user(); 
$user = User::firstOrCreate(['fb_id'=>$fb_user->id,'name' => $fb_user->name, 'email' => $fb_user->email]);
Auth::login($user, true);
return redirect('/');

现在,用户表具有一个用户名和密码为NULL的用户。 如果不需要密码验证,没有人只能使用内置登录名中的用户名登录吗? 或者我的概念有什么问题吗?

如果不需要密码验证,没有人只能使用内置登录名中的用户名登录吗?

是的,任何人都可以登录。

从评论:

解决方案1:

密码应hashed.Assuming空密码是允许的,他们会出现乱码的东西,不为空(例如, password_hash('',PASSWORD_DEFAULT);返回类似$2y$10$MD7HZwh9oki9U74Ta1/7OuDpYK8UXAFEufgMIeNazKSyv1xRabwqu‌​ )因此应该不存在真正的这种方法的问题。

解决方案2:

我们应该有一个字段来将用户标记为来自单独的身份验证源。 这样,如果有人尝试使用这些详细信息直接登录,则在检查凭据时可以忽略带有该标志的行

最近我遇到了同样的问题。 我建议这样做:

当用户选择社交媒体登录到您的网站时,使用从身份验证后从社交媒体网站获得的信息在您的网站中创建他们的帐户,然后将其登录到您的网站。 现在,当他们登录时,向他们显示一个弹出窗口以为他们的帐户设置密码

现在,可以同时使用内置的Laravel和社交身份验证进行登录。

暂无
暂无

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

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