카카오톡으로 그누보드 로그인할때 아이디 패스워드 입력창이ᆢ

카카오톡으로 그누보드 로그인할때 아이디 패스워드 입력창이ᆢ

QA

카카오톡으로 그누보드 로그인할때 아이디 패스워드 입력창이ᆢ

답변 2

본문

카카오톡으로 그누보드 로그인할때 아이디 패스워드 입력창이ᆢ뜨는데 이거 안뜨고 바로 로그인되게 할순없나요?

이 질문에 댓글 쓰기 :

답변 2


// callback.php
require_once '../common.php';
// 카카오 API를 통해 받은 코드를 사용하여 액세스 토큰을 요청합니다.
$code = $_GET['code'];
$token_url = 'https://kauth.kakao.com/oauth/token';
$data = [
    'grant_type' => 'authorization_code',
    'client_id' => $client_id,
    'redirect_uri' => $redirect_uri,
    'code' => $code
];
$options = [
    'http' => [
        'header' => "Content-type: application/x-www-form-urlencoded\r\n",
        'method' => 'POST',
        'content' => http_build_query($data),
    ],
];
$context = stream_context_create($options);
$response = file_get_contents($token_url, false, $context);
$tokens = json_decode($response, true);
// 액세스 토큰을 사용하여 사용자 정보를 요청합니다.
$access_token = $tokens['access_token'];
$user_info_url = 'https://kapi.kakao.com/v2/user/me';
$options = [
    'http' => [
        'header' => "Authorization: Bearer " . $access_token,
        'method' => 'GET',
    ],
];
$context = stream_context_create($options);
$response = file_get_contents($user_info_url, false, $context);
$user_info = json_decode($response, true);
// 사용자 정보를 이용하여 회원가입 또는 로그인 처리
$kakao_id = $user_info['id'];
$nickname = $user_info['properties']['nickname'];
$email = $user_info['kakao_account']['email'];
// 회원 존재 여부 확인
$sql = "SELECT * FROM {$g5['member_table']} WHERE mb_id = '{$kakao_id}'";
$member = sql_fetch($sql);
if (!$member) {
    // 회원이 존재하지 않으면 자동 가입 처리
    $sql = "INSERT INTO {$g5['member_table']} (mb_id, mb_email, mb_nick, mb_password, mb_datetime, mb_ip)
            VALUES ('{$kakao_id}', '{$email}', '{$nickname}', PASSWORD('{$access_token}'), NOW(), '{$_SERVER['REMOTE_ADDR']}')";
    sql_query($sql);
}
// 로그인 처리
set_session('ss_mb_id', $kakao_id);
set_session('ss_mb_nick', $nickname);
// 로그인 후 메인 페이지로 리디렉션
goto_url(G5_URL);
 
 

 

회원가입 여부를 확인하고, 존재하지 않으면 자동으로 가입한 후 로그인 상태를 유지하도록 변경해봤습니다.. 이를 통해 카카오톡 로그인 시 아이디와 비밀번호 입력 없이 바로 로그인할 수 있습니다. 참고 해서 적용해보시기 바랍니다.

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 86
© SIRSOFT
현재 페이지 제일 처음으로