Skip to content

Latest commit

 

History

History
127 lines (90 loc) · 2.76 KB

README_zh.md

File metadata and controls

127 lines (90 loc) · 2.76 KB

SAST Link C++ SDK

English |简体中文

简介

SAST Link 是一个综合人员管理系统和 OAuth,旨在提供一种安全高效的方式来管理和授权访问您的应用程序和服务。

此项目是使用 C++ 编写的跨平台 SAST Link SDK。如果您对前端感兴趣,请访问 SAST Link frontend.

特性

  • C++20 协程
  • 跨平台

开始

预设条件

编译和构建工具

  • 支持C++20或更高版本的编译器
  • CMake 3.15 或更高版本

依赖项

克隆和构建

克隆仓库:

git clone https://github.com/NJUPT-SAST/sast-evento-desktop.git

构建项目:

cmake -B build
cmake --build build

Note

如果您想构建示例,请使用以下命令:

cmake -B build -DBUILD_EXAMPLE=ON
cmake --build build

使用

CMakeLists.txt

cmake_minimum_required(VERSION 3.15)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

project(example VERSION 0.1.0 LANGUAGES CXX)

option(BUILD_SAST_LINK_SHARED ON) # default is ON 

add_subdirectory(sast-link-cxx-sdk)

add_executable(example main.cc)

target_link_libraries(example PRIVATE
    sast-link
)

if (WIN32)
    add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_RUNTIME_DLLS:${PROJECT_NAME}> $<TARGET_FILE_DIR:${PROJECT_NAME}> COMMAND_EXPAND_LISTS)
endif()

main.cc

#include <sast_link.h>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/detached.hpp>
#include <boost/asio/io_context.hpp>
#include <iostream>

namespace net = boost::asio;

int main() {
    net::io_context ioc;
    net::co_spawn(
        ioc,
        []() -> net::awaitable<void> {
            auto result = co_await sast_link::login();
            if (result) {
                std::cout << "code: " << result.value() << '\n';
            } else {
                std::cerr << "Login failed: " << result.error() << '\n';
            }
        },
        net::detached);
    ioc.run();
}

TODO List

  • 异步获得link返回的code
  • 添加更可靠的错误处理
  • 添加单元测试
  • 添加更多 API 支持