0

소셜 인증의 사용자 세부 정보를 User (인증 가능) 모델에 저장하고 사용자로 로그인합니다. 그래서 나는 Auth의 기능을 사용할 수 있습니다.laravel Auth를 사용하여 사회적으로 인증 된 사용자

콜백 기능 :

public function callback() 
{ 
    $user = Socialite::driver('facebook')->user(); 

    $newUser=new User(); 
    $newUser->name=$user->name; 
    $newUser->email=$user->email; 
    $newUser->remember_token=$user->token; 
    $newUser->save(); 

    Auth::login($newUser, true); 
    return redirect('/'); 
} 

, 나는 다음 암호 검증 할 필요가 없다면, 우리는 우리의 응용 프로그램 데이터베이스에 저장 페이스 북의 암호를이 donot 때문에, 단지 로그인에 내장, 일반 로그인 양식을 사용자 이름으로 로그인 할 수있는 사람을 실현 . 이 경우 암호는 NULL입니다.

사용자가 로그 아웃 한 후 사용자 세부 정보를 삭제하는 것이 좋습니다.

public function logout() 
{ 
    User::find(Auth::user()->id)->delete(); 
    Auth::logout(); 
    return redirect('/')->with('message','logged out!'); 
} 

이렇게 좋지는 않습니다. 사회적으로 인증 된 사용자가 사용하게하는 더 좋거나 더 좋은 방법은 무엇입니까 Auth?

답변

1

이것은 API의 수명주기를 신중하게 이해하지 못했음을 의미합니다. 사용자를 Facebook 페이지로 리디렉션하여 응용 프로그램을 수락하고 로그인하십시오. 페이스 북에서 사용자의 세부 정보를 제공하고 fb_id, 전자 메일, 전화 번호 등을 저장 한 다음 작성합니다. 다음에 로그인 할 때 fb_id가 사용자 로그인에서 반환 된 것과 일치하는지 확인하십시오. 따라서 등록 후 사용자를 삭제하는 것은 의미가 없습니다.

+0

페이스 북의 비밀번호를'user' 모델에 저장하지 않았기 때문에 암호 검증이 필요하지 않으면 내장 로그인에서 아무도 우리 이름으로 로그인 할 수 없었습니까? –

+0

예 페이스 북에서 로그인하기 때문에 페이스 북은 로그인 후 ID 만 제공하므로 로그인 한 사용자가 생성 한 ID를 확인할 수 있으므로 소셜 인증 로그인을 생성하지 않는 이유는 무엇입니까? 그것은 모든 로그인에 대한 암호가 필요한 이유는 사회적 인증을 사용하면 쓸모가 없을 것입니다? –

+0

페이스 북에서 인증 한 후 fb id, name, username은 저장하지만'User' 모델에는 암호가 저장되지 않습니다. 그럼 아무도 페이스 북에서 로그인하지 기본 로그인에서 사용자 이름으로 로그인 할 수 있습니까? –

관련 문제