PrismLauncher/libraries/katabasis
Sefa Eyeoglu f33f596584
refactor: use ECM logging categories instead
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-27 17:34:21 +01:00
..
include/katabasis refactor: use ECM logging categories instead 2022-12-27 17:34:21 +01:00
src refactor: use ECM logging categories instead 2022-12-27 17:34:21 +01:00
.gitignore NOISSUE bulk addition of code from Katabasis 2021-07-25 19:50:44 +02:00
acknowledgements.md chore(markdown): MD009 Trailing spaces 2022-08-06 12:57:30 +05:30
CMakeLists.txt refactor: use ECM logging categories instead 2022-12-27 17:34:21 +01:00
LICENSE NOISSUE bulk addition of code from Katabasis 2021-07-25 19:50:44 +02:00
README.md Rename 2022-10-19 15:02:43 +05:30

Katabasis - MS-flavored OAuth for Qt, derived from the O2 library

This library's sole purpose is to make interacting with MSA and various MSA and XBox authenticated services less painful.

It may be possible to backport some of the changes to O2 in the future, but for the sake of going fast, all compatibility concerns have been ignored.

You can find the original library's git repository here.

Notes to contributors:

  • Please follow the coding style of the existing source, where reasonable
  • Code contributions are released under Simplified BSD License, as specified in LICENSE. Do not contribute if this license does not suit your code
  • If you are interested in working on this, come to the Prism Launcher Discord server and talk first

Installation

Clone the Github repository, integrate the it into your CMake build system.

The library is static only, dynamic linking and system-wide installation are out of scope and undesirable.

Usage

At this stage, don't, unless you want to help with the library itself.

This is an experimental fork of the O2 library and is undergoing a big design/architecture shift in order to support different features:

  • Multiple accounts
  • Multi-stage authentication/authorization schemes
  • Tighter control over token chains and their storage
  • Talking to complex APIs and individually authorized microservices
  • Token lifetime management, 'offline mode' and resilience in face of network failures
  • Token and claims/entitlements validation
  • Caching of some API results
  • XBox magic
  • Mojang magic
  • Generally, magic that you would spend weeks on researching while getting confused by contradictory/incomplete documentation (if any is available)