나는 래벨과 소셜 인증을 모두 가지고 있습니다. 사용자가 페이스 북을 사용하여 로그인하면, fb_id
, username
, email
등과 같은 사용자 세부 정보를 내장 로그인 시스템에서 인증 할 수있는 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('/');
이제 users 테이블에는 사용자 이름과 암호가 NULL 인 사용자가 있습니다. 암호 검증이 필요하지 않으면 누구도 로그인에 내장 된 사용자 이름으로 로그인 할 수 없습니까? 또는 나의 개념에 무엇이 잘못 되었습니까?
Laravel에 대해 잘 모릅니다. 그러나 이런 종류의 상황에서 응용 프로그램이 토큰을 가져올 것이라고 확신합니다. 사용자가 유효한지 여부를 말하는 페이스 북. Facebook 만 실제 자격 증명을 봅니다. 그것은 연합 된 신원이라고 불립니다. 그리고 그것은 좋은 일입니다. 페이스 북의 자격증 명을 저장하는 많은 무작위, 잠재적으로 안전하지 않은 사이트에 만족하십니까? 그리고 사용자의 자격 증명을 저장하면 무엇을 할 것이며, 암호를 변경했는지 또는 계정이 만료되었는지 어떻게 알 수 있습니까? 페이스 북이 당신을 위해 모든 것을 처리한다. 당신이 필요로하는 것은 그들로부터 "예/아니오"대답이다. – ADyson
비밀번호를 해시하는 것이 좋습니다. 빈 패스워드가 허용된다면, 그들은 비어 있지 않은 것으로 해쉬 할 것이다 (예를 들어'password_hash (" ', PASSWORD_DEFAULT);'$ 2y $ 10 $ MD7HZwh9oki9U74Ta1/7OuDpYK8UXAFEufgMIeNazKSyv1xRabwqu'와 같은 것을 반환한다) 그러므로 실제 문제는 없어야한다. 너의 방법. –
@ADyson 암호를 묻는 질문을하지 않았습니다. 만약 내가 아이디, 이메일, 비밀 번호를 내 애플 리케이션 데이터베이스의 인증 테이블에 빈 채로 저장합니다. 일반 로그인 양식에서 로그인 할 수 없습니까? 아니면 내가 인증 테이블에 어떤 fb 사용자 정보도 저장하지 않아야합니까? –