CodeSwitch

Any language, any framework, always secure

Integrate authentication into your APIs effortlessly with just a few lines of code. We offer SDKs for various languages and frameworks, alongside an intuitive REST API with a public OpenAPI specification.

import { verifyKey } from '@codeswitch/api'

const { result, error } = await verifyKey({
    apiId: 'api_123',
    key: 'xyz_123'
})

if (error) {
    // handle network error
}

if (!result.valid) {
    // reject unauthorized request
}

// handle request
                
import asyncio
import os
import codeswitch

async def main() -> None:
    client = codeswitch.Client(api_key=os.environ["API_KEY"])
    await client.start()

    result = await client.keys.verify_key("prefix_abc123")

    if result.is_ok {
        print(data.valid);
    } else {
        print(result.unwrap_err());
    }
                
use codeswitch::models::{VerifyKeyRequest, Wrapped};
use codeswitch::Client;

async fn verify_key() {
    let api_key = env::var("codeswitch_API_KEY").expect("Environment variable CODESWITCH_API_KEY not found");
    let c = Client::new(&api_key);
    let req = VerifyKeyRequest::new("test_req", "api_458vdYdbwut5LWABzXZP3Z8jPVas");

    match c.verify_key(req).await {
        Wrapped::Ok(res) => println!("{{res:?}}"),
        Wrapped::Err(err) => eprintln!("{{err:?}}"),
    }
}
                
package main

import (
    "fmt"
    codeswitch "github.com/WilfredAlmeida/codeswitch-go/features"
)

func main() {
    apiKey := "key_3ZZ7faJrkfv1YAfhfAcnKW74";
    response, err := codeswitch.KeyVerify(apiKey);
    if err != nil {
        fmt.Println("Error:", err);
        return;
    }

    if response.Valid {
        fmt.Println("Key is valid");
    } else {
        fmt.Println("Key is invalid");
    }
}
                
curl --request POST \
--url https://api.codeswitch.dev/v1/keys.verifyKey \
--header 'Content-Type: application/json' \
--data '{
    "apiId": "api_1234",
    "key": "sk_1234",
}'
                
CodeswitchElixirSdk.verify_key("xyz_AS5HDbkXXPot2MMoPHD8jnL")

# returns
%{
    "valid" => true,
    "ownerId" => "chronak",
    "meta" => %{
        "hello" => "world"
    }
}
                
package com.example.myapp;
import com.codeswitch.codeswitchsdk.dto.KeyVerifyRequest;
import com.codeswitch.codeswitchsdk.dto.KeyVerifyResponse;

@RestController
public class APIController {

    private static IKeyService keyService = new KeyService();

    @PostMapping("/verify")
    public KeyVerifyResponse verifyKey(
        @RequestBody KeyVerifyRequest keyVerifyRequest) {
        // Delegate the creation of the key to the KeyService from the SDK
        return keyService.verifyKey(keyVerifyRequest);
    }
}
                

oss/acc

Open-source

We believe strongly in the value of open source: our codebase and development process is available to learn from and contribute to.

GitPulse