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 - 사용자 등록 및 토큰 발급을 위한 웹서비스를 연동하는 방법

 KrakenD API Gateway와 사용자 등록 및 토큰 발급을 위한 웹서비스를 연동하는 방법을 설명해 드릴게요. 이 과정은 주로 별도의 인증 서버를 설정하고, KrakenD와 통합하여 JWT 토큰을 검증하는 방식으로 이루어집니다.

1. 인증 서버 설정

먼저, Node.js와 Express를 사용하여 간단한 인증 서버를 설정합니다. 이 서버는 사용자 등록과 로그인 기능을 제공합니다.

Node.js와 Express 설치

npm init -y
npm install express jsonwebtoken body-parser

인증 서버 코드 작성

다음은 사용자 등록과 로그인 기능을 포함한 인증 서버 코드입니다.

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('/register', (req, res) => {
  const { user, pass } = req.body;
  // 사용자 정보를 데이터베이스에 저장하는 로직 추가
  res.json({ message: 'User registered successfully' });
});

// 로그인 및 토큰 발급 엔드포인트
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}`);
});

2. 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"
        }
      }
    }
  ]
}

3. 토큰 발급 및 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와 별도의 인증 서버를 통합하여 사용자 등록과 토큰 발급을 처리할 수 있습니다. 추가로 궁금한 점이 있으면 언제든지 물어보세요! 😊

댓글

이 블로그의 인기 게시물

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

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

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