HomeGuidesAPI ReferenceAnnouncements
AnnouncementsGuidesAPI ReferenceSupportFAQ
API Reference

인증

앞서 "기본 정보"에서 확인한것과 같이 웹소켓은 Public 데이터와 Private 데이터로 나누어져있습니다. Public 데이터를 수신하기 위해서는 별다른 인증이 필요 없습니다. Private 데이터를 수신하기 위해서는 Websocket 연결 시 인증에 성공해야합니다.

  • REST API 에서와 동일하게 Authorization 헤더를 통해 인증을 진행합니다.
  • 인증 가능한 요청 만들기 의 "JWT 인증 토큰 만들기" 를 참고하시기 바랍니다.

(예시) Header 에 인증 정보를 담아 Websocket 연결

const jwt = require("jsonwebtoken");
const {v4: uuidv4} = require('uuid');
const WebSocket = require("ws");

const payload = {
    access_key: "발급받은 Access key", 
    nonce: uuidv4(),
};


const jwtToken = jwt.sign(payload, "발급받은 Secret key");

const ws = new WebSocket("wss://api.upbit.com/websocket/v1", {
    headers: {
        authorization: `Bearer ${jwtToken}`
    }
});


ws.on("open", () => {
    console.log("connected!");
    // Request after connection
    ws.send('[{"ticket":"test example"},{"type":"myTrade"}]');

});

ws.on("error", console.error);

ws.on("message", (data) => console.log(data.toString()));

ws.on("close", () => console.log("closed!"));
import jwt  # PyJWT
import uuid
import websocket  # websocket-client


def on_message(ws, message):
    # do something
    data = message.decode('utf-8')
    print(data)


def on_connect(ws):
    print("connected!")
    # Request after connection
    ws.send('[{"ticket":"test example"},{"type":"myTrade"}]')


def on_error(ws, err):
    print(err)


def on_close(ws, status_code, msg):
    print("closed!")


payload = {
    'access_key': "발급받은 Access key",
    'nonce': str(uuid.uuid4()),
}

jwt_token = jwt.encode(payload, "발급받은 Secret key");
authorization_token = 'Bearer {}'.format(jwt_token)
headers = {"Authorization": authorization_token}

ws_app = websocket.WebSocketApp("wss://api.upbit.com/websocket/v1",
                                header=headers,
                                on_message=on_message,
                                on_open=on_connect,
                                on_error=on_error,
                                on_close=on_close)
ws_app.run_forever()