MultiMC5/libraries/katabasis
Petr Mrázek 07907ded5c NOISSUE revamp the MSA login dialog
It now has a more sensible UI/UX:
- Added a QR code you can scan on your phone to complete the logn flow
- Inverted the progress bar to show that it is a timeout
- Redone the text label so that it does not break the layout when it has multiple lines

Also started working on redoing the accounts/profiles/skins/capes management in general
2024-12-24 05:47:37 +01:00
..
include/katabasis GH-4071 handle network errors when logging in with MSA as 'soft' 2021-11-28 18:42:01 +01:00
src NOISSUE revamp the MSA login dialog 2024-12-24 05:47:37 +01:00
.gitignore NOISSUE bulk addition of code from Katabasis 2021-07-25 19:50:44 +02:00
acknowledgements.md NOISSUE bulk addition of code from Katabasis 2021-07-25 19:50:44 +02:00
CMakeLists.txt GH-4071 handle network errors when logging in with MSA as 'soft' 2021-11-28 18:42:01 +01:00
LICENSE NOISSUE bulk addition of code from Katabasis 2021-07-25 19:50:44 +02:00
README.md NOISSUE bulk addition of code from Katabasis 2021-07-25 19:50:44 +02:00

Katabasis - MS-flavoerd 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 MultiMC 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)