개발자의 끄적끄적

[php] zoom jwt token generate function / 줌 jwt 토큰 생성 함수 본문

개발/php

[php] zoom jwt token generate function / 줌 jwt 토큰 생성 함수

효벨 2025. 3. 29. 09:00
728x90
반응형

[php] zoom jwt token generate function / 줌 jwt 토큰 생성 함수

 

 

 

안녕하세요.

 

이번에는 본업인 웹개발 관련 내용입니다!

 

php 로 zoom 을 연동하려면,

 

jwt 토큰이 필요합니다.

 

그럴때 사용하면 되는 함수를 공유해보려고 합니다!

 

저는 meeting sdk 로 채팅방에 접근하려는 과정에서 jwt 토큰이 필요해서

 

아래 소스로 해결했습니다!

function generateZoomSignature($sdkKey, $sdkSecret, $meetingNumber, $role) {
    $iat = time();  // 현재 시간 (초 단위)
    $exp = $iat + 3600; // 1시간 후 만료

    $payload = [
        "sdkKey" => $sdkKey,
        "mn" => $meetingNumber,
        "role" => $role,
        "iat" => $iat,
        "exp" => $exp,
        "appKey" => $sdkKey,
        "tokenExp" => $exp
    ];

    $header = [
        "alg" => "HS256",
        "typ" => "JWT"
    ];

    $base64UrlHeader = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode(json_encode($header)));
    $base64UrlPayload = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode(json_encode($payload)));

    // 🔥 Secret Key가 올바른지 확인
    if (strlen($sdkSecret) < 32) {
        die("Error: Zoom SDK Secret must be at least 256 bits (32 characters) long.");
    }

    $signature = hash_hmac('sha256', $base64UrlHeader . "." . $base64UrlPayload, $sdkSecret, true);
    $base64UrlSignature = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($signature));

    return $base64UrlHeader . "." . $base64UrlPayload . "." . $base64UrlSignature;
}

 

함수를 이용해서 연동에 필요한 값을을 대입해서 jwt 토큰을 생성해서 사용하시면

 

바로 적용하실 수 있습니다!

 

줌이 이번에 변경된게 많아서 궁금하신 사항 있으시면 말씀주세요!

 

삽질했던 기억을 떠올려서 도움 드릴 수 있는건 최대한 알려드리겠습니다!

 

도움이 되셨다면, 구독과 좋아요도 눌러주세요~!

 

 

[참고] jwt token 유효성 검사 사이트

[참고] jwt token 유효성 검사 사이트    api 를 연동하다보면 구글이나, 애플, 줌 등 여러사이트에서 jwt 토큰을 생성해서 통신을 합니다! 그 과정에서 토큰 에러가 자주 발생되실 텐데요.. 

solbel.tistory.com

 

반응형
Comments