제공된 예제 코드를 사용하면 lightopenid를 통해 내 Google 계정을 사용하여 내 앱에 로그인 할 수있게되었습니다. 내 로그인이 세션 전체에서 지속될 수 있도록 쿠키에 ID를 저장했습니다.lightopenid/로그 아웃을 사용하여 로그인 정보 유지
어떻게하면 사용자가 내 사이트를 탐색 할 때이 ID를 다시 확인하여 로그인 상태를 유지할 수 있습니까? 오른쪽 상단에 표시되는 이름을 유지하거나 로그 아웃하는 데 응답하고 싶습니다.
ID를 설정하고 validate()를 호출하면 새로운 lightopenid 객체를 생성 할 수 없습니다. lightopenid 객체는 배열이 많지 않으므로 validate()는 false를 반환합니다.
이 외에도 사용자가 로그 아웃 할 수 있도록 링크를 작성하는 방법은 무엇입니까? (내 사이트에 사용자를 얻기 위해 노력하고 있습니다)
로그인 코드 :
$openID = new LightOpenID($_SERVER['HTTP_HOST']);
$openID -> required = array(
'namePerson',
'namePerson/first',
'namePerson/last',
'contact/email'
);
if (!$openID -> mode) {
// TRYING TO LOG IN
$openID -> identity = 'https://www.google.com/accounts/o8/id';
redirect($openID -> authUrl());
} else {
$page_data = array(
"page_title" => "Login",
"additional_css" => array(),
"additional_js" => array()
);
if ($openID -> mode == "cancel") {
$login_error = array(
"login_error" => "Google authentication cancelled"
);
$this -> load -> view('global/header',$page_data);
$this -> load -> view('login/form',$login_error);
$this -> load -> view('global/footer');
} else {
if ($openID -> validate()) {
$openID_identity = $openID -> identity;
$openID_data = $openID -> getAttributes();
$first_name = $openID_data["namePerson/first"];
$last_name = $openID_data["namePerson/last"];
$email = $openID_data["contact/email"];
$login = array(
"first_name" => $first_name,
"last_name" => $last_name
);
// SESSION COOKIE
$this -> session -> set_userdata(array(
"user_id" => 0,
"identity" => $openID_identity,
"first_name" => $first_name,
"last_name" => $last_name,
"email" => $email
));
redirect("/login/welcome");
} else {
$login_error = array(
"login_error" => "Google authentication failed"
);
$this -> load -> view('global/header',$page_data);
$this -> load -> view('login/form',$login_error);
$this -> load -> view('global/footer');
}
}
}
코드가 텍스트 묶음처럼 보입니다 ... 아마도 그게 문제입니다. – stormdrain
텍스트 묶음을 편집하여 텍스트 묶음을 추가합니다. – MikkyX
아! 훨씬 낫지 만 OA를 사용하지는 않았지만 그들의 문서를보기에는 스마트 모드가 인증을 지속하는 데 필요하고 Lightopenid는 "멍청한"모드 밖에 없다. 그러나 원하는 모든 것이 인증을 추적하는 것이라면 db 세션을 사용하고 openID ID를 확인하십시오. 사용자 이름에 db 쿠키를 사용하고 로그 아웃시 쿠키를 삭제하십시오. – stormdrain