2026, 새로운 도약을 시작합니다.

외부다른서버 로그인화면에서 그누보드에 로그인하려면 어떻게 해야 하나요 채택완료

회원가입 및 mb_id/mb_password는 그누보드를 사용하고, 

외부에서는 그누보드에 id와 password를 보내 등록 사용자인지 확인하려고 합니다. 

그누보드에 어떻게 api를 설치해야 할까요. 

포스트맨에서는 post 하고 어떻게 그누보드의 id와 password가 맞는지 확인할 수 있을까요. 

bbs/login.php 나 bbs/logincheck.php 에 포스트맨이 포스트하면 로그인 성공 / 실패 결과를 받을 수 있을까요

답변 3개

채택된 답변
+20 포인트

bbs/logincheck.php를 외부 로그인 API로 사용하기에는 적합하지 않습니다.

별도의 API 엔드포인트를 설계하고,

외부에서 호출 가능한 안전한 인증 시스템을 구현하셔야 합니다.

문답을 정리하니, 아래와 같은 단계로 정리됩니다:

1. 새로운 API 엔드포인트 설계

- 별도의 파일(bbs/auth_login.php)을 생성하여 POST 요청을 처리합니다.

- 요청 데이터는 JSON 형식으로 전달합니다 (ID, 비밀번호 등).

*예시 - 아래는 auth_login.php에 들어갈 기본 PHP 코드

Copy

2. API 키 관리 및 발급

- 사용자별 고유 API 키와 SECRET_KEY를 생성하고 관리합니다.

- API 호출 시, 헤더 또는 쿼리 파라미터에 API 키를 포함하도록 설계합니다.

3. 보안 강화

- 데이터는 반드시 HTTPS를 통해 암호화하여 전송합니다.

- 비밀번호는 `password_hash`와 `password_verify`를 사용해 처리합니다.

- 필요 시, 요청당 사용 가능한 일회용 토큰(예: JWT)을 추가합니다.

*lib 디렉토리에 API 키 검증을 위한 api_key.lib.php 파일 생성.

Copy

*auth_login.php에 API 키 검증 로직 추가.

Copy


include_once('../lib/api_key.lib.php');

$api_key = $_SERVER['HTTP_API_KEY'] ?? '';

if (!is_valid_api_key($api_key)) {

    http_response_code(403); // Forbidden

    echo json_encode(['error' => 'Invalid API key']);

    exit;

}

4. 응답 형식 정의

- 성공 시: 사용자 정보와 인증 상태를 포함한 JSON을 반환합니다.

- 실패 시: 오류 코드와 메시지를 포함한 JSON을 반환합니다.

성공 시:

Copy


{

    "success": true,

    "message": "Login successful",

    "data": {

        "mb_id": "example",

        "mb_name": "홍길동",

        "mb_email": "example@example.com"

    }

}

실패 시:

Copy


{

    "error": "Invalid ID or password"

}

5. 추가적인 확장 가능성

- OAuth2를 통해 외부 서비스와의 인증을 확장합니다.

- 외부 시스템에서 인증 후, 세션/토큰을 통해 지속적인 인증 상태를 유지합니다.

6. Postman이나 cURL로 다음과 같이 테스트:

- URL: "http://yourdomain.com/bbs/auth_login.php"

- Method: POST

- Headers:

  *Content-Type: application/json

  *API-Key: your_predefined_api_key

- Body:

Copy


{

    "mb_id": "testuser",

    "mb_password": "password123"

}

이 작업은 보안 강화, 확장성, API 표준화를 모두 충족해야 하고,

프로젝트의 요구 사항에 적합해야 하니,

보안과 기능 요구사항을 완벽히 만족시키기 위해서는

전문적인 백엔드 설계가 필요하며, 전문 개발자와 협업하시는 것을 권장드립니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

가능합니다.

A 서버 : 회원정보가 있는 서버
B 서버 : A 서버에 회원정보가 있는지 채크할 서버.

A 서버에서 json 형태로 응답할수 있게 만드시고

B 서버에서 요청하시면 됩니다.

단순 B 서버에서 요청한 값이 A 서버에 등록되어있는지 채크 용도이며

양 서버의 로그인 등을 동기화하려면 DB 를 분리하는게 맞습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

bbs/logincheck.php 는 외부로그인api로 성립되지않습니다.

하여, 별도의 외부에서 로그인할수있는 엔드포인트로 api로 만들어주시고 그리고 외부에서 호출을 하도록 해야할것입니다.

또한 api키관리를 위한 벡엔드가 설계되어야 하며, 그리고 이를 외부에서 사용용할 사용자에게  SECRET_KEY 발급을 해줘야하겠지요. 그리고 엔드포인트 api로 체크하여 로그인이되도록 할수가 있겟습니다.

이는 제작의뢰(개발)에 맞겨셔야 할것같네요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고