Kraken api - get token with python

Kraken api - get token with python an example of how you can generate a WebSocket authentication token using Python for Kraken's API: ```python import time import base64 import hashlib import hmac import urllib.request import json # Replace with your Kraken API public and private keys api_key = 'YOUR_API_PUBLIC_KEY' api_secret = 'YOUR_API_PRIVATE_KEY' # API endpoint and parameters api_path = '/0/private/GetWebSocketsToken' api_nonce = str(int(time.time() * 1000)) api_post = 'nonce=' + api_nonce # Create the SHA256 hash api_sha256 = hashlib.sha256(api_nonce.encode('utf-8') + api_post.encode('utf-8')).digest() # Create the HMAC signature api_hmac = hmac.new(base64.b64decode(api_secret), api_path.encode('utf-8') + api_sha256, hashlib.sha512) api_signature = base64.b64encode(api_hmac.digest()) # Create the request api_request = urllib.request.Request('https://api.kraken.com' + api_path, api_post.encode('utf-8')) ap

KrakenD API Gateway - Token을 이용한 API 사용 방법

 사용자 인증 서버를 구성하려면, 일반적으로 다음과 같은 단계를 따릅니다. 여기서는 JWT 토큰을 발급하고 검증하는 간단한 인증 서버를 Node.js와 Express를 사용하여 설정하는 예시를 제공하겠습니다.

1. Node.js와 Express 설치

먼저 Node.js와 Express를 설치합니다.

npm init -y
npm install express jsonwebtoken body-parser

2. 인증 서버 코드 작성

다음은 간단한 인증 서버 코드입니다. 사용자가 로그인하면 JWT 토큰을 발급합니다.

const express = require('express');
const jwt = require('jsonwebtoken');
const bodyParser = require('body-parser');

const app = express();
const PORT = 3000;
const SECRET_KEY = 'your_secret_key';

app.use(bodyParser.json());

app.post('/token', (req, res) => {
  const { user, pass } = req.body;
  if (user === 'john' && pass === 'doe') {
    const token = jwt.sign({ user }, SECRET_KEY, { expiresIn: '1h' });
    res.json({ token });
  } else {
    res.status(401).json({ message: 'Invalid credentials' });
  }
});

app.listen(PORT, () => {
  console.log(`Authentication server running on port ${PORT}`);
});

3. KrakenD 설정 파일 (krakend.json)

KrakenD에서 JWT 토큰을 검증하도록 설정합니다.

{
  "$schema": "https://www.krakend.io/schema/v2.7/krakend.json",
  "version": 3,
  "endpoints": [
    {
      "endpoint": "/v1/foo-bar",
      "method": "GET",
      "backend": [
        {
          "url_pattern": "/foo",
          "host": ["https://my.foo-api.com"]
        },
        {
          "url_pattern": "/bar",
          "host": ["https://my.bar-api.com"]
        }
      ],
      "extra_config": {
        "auth/validator": {
          "alg": "HS256",
          "secret": "your_secret_key"
        }
      }
    }
  ]
}

4. 토큰 발급 및 API 요청 예시

토큰을 발급받고 API 요청을 보내는 예시입니다.

토큰 발급

curl -X POST "http://localhost:3000/token" -H "Content-Type: application/json" -d '{"user": "john", "pass": "doe"}'

API 요청

curl -X GET "http://localhost:8080/v1/foo-bar" -H "Authorization: Bearer YOUR_JWT_TOKEN"

이렇게 하면 KrakenD API Gateway에서 JWT 토큰을 이용한 사용자 인증을 설정할 수 있습니다. 추가로 궁금한 점이 있으면 언제든지 물어보세요! 😊

댓글

이 블로그의 인기 게시물

SSL/TLS 인증서 오류를 해결- 리눅스명령모음 - SSL certificate problem

(truffle 환경 설정) 스마트 계약 배포 와 truffle deploy 오류 해결 - Error: Could not find artifacts for SimpleStorage from any sources

자기주권 신원 (SSI Self-Sovereign Identity) 인증의 발전 그리고 정보 민주화 (Information Democratization)