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();
}
- 异步获得link返回的code
- 添加更可靠的错误处理
- 添加单元测试
- 添加更多 API 支持