Описание
Authenticate Minecraft accounts in development environments.
This is a "reincarnation" of [DevAuth](https://github.com/DJtheRedstoner/DevAuth) but improved, updated and available directly as a Fabric mod.
## Usage
### Adding the mod
via Maven Central (default)
Add the following to ``build.gradle``:
```groovy
dependencies {
localRuntime 'net.litetex.mcm:dev-auth-neo:'
// Further documentation: https://wiki.fabricmc.net/documentation:fabric_loom
}
```
via Modrinth
Add the following to ``build.gradle``:
```groovy
repositories {
// https://support.modrinth.com/en/articles/8801191-modrinth-maven
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
filter {
includeGroup 'maven.modrinth'
}
}
}
dependencies {
localRuntime 'maven.modrinth:dev-auth-neo:'
// Further documentation: https://wiki.fabricmc.net/documentation:fabric_loom
}
```
### Quickstart
IMPORTANT: **DevAuth is disabled by default**, in order to be unobtrusive.
The simplest way to enable it is by setting the corresponding system property: ``-Ddevauth.enabled=1``
* When launching for the first time you will be prompted to enter your credentials
* You will also get hints on what to do in the console/logs when required
* After the authentication was successful the generated tokens will be stored in `microsoft_accounts.json`
* Future logins will try to reuse these tokens
* The tokens are then delegated to the game and it starts as usual
### Configuration
The configuration is dynamically loaded from (sorted by highest priority)
* Environment variables
* prefixed with ``DEVAUTH_``
* all properties are in UPPERCASE and use `_` instead of `.` or `-`
* System properties
* prefixed with ``devauth.``
* A configuration file located in ``~/.dev-auth-neo/config.json``
Full list of configuration options
#### General
| Property | Type | Default | Notes |
| --- | --- | --- | --- |
| `enabled` | `bool` | `false` | |
| `account` | `String` | - | If not set:Will be prompted via the console |
| `account-type` | `String` | `microsoft` | Currently only Microsoft is supported |
| `force-handle-all-tokens-as-expired` | `bool` | `false` | Handles all existing tokens as if they have expired and refreshes them |
| `state-dir` | `String` | Automatically determined`~/.dev-auth-neo`) | The directory where the login information of the provider will be saved |
| `cache-profile-info-minutes` | `int` | `360`6h | How long should fetched profile information(uuid and name) be cached? |
#### Microsoft Grant-Flow options
_NOTE: All grant-flow options are additionally prefixed with `microsoft.oauth2.` For example `predefined-provider` must therefore be defined as `devauth.microsoft.oauth2.predefined-provider`_
| Property | Type | Default | Notes |
| --- | --- | --- | --- |
| `grant-flow` | `String` | `auth-code-embedded` | See bellow for available flows |
| `client-id` | `String` | automatically determined | Designed as general purpose override for e.g. a custom provider |
| `scopes` | `List` | automatically determined | |
#### `auth-code-embedded` Auth Code flow using an embedded browser
* This login mechanism is identical to the one used by Minecraft's launcher
* Therefore selected by default
* This workflow downloads and installs a Chromium browser using CEF (Chromium Embedded Framework)
* The download is around 150MB
* It's installed by default into `~/.dev-auth-neo/jcef`
| Property | Type | Default | Notes |
| --- | --- | --- | --- |
| `use-temporary-cache-dir` | `bool` | `true` | Creates and uses a temporary directory for the browser cache. If this is set to `false` all browser information (cookies, cache) and also possible logins will be persisted! |
| `redirect-uri` | `String` | automatically determined | Designed as general purpose override for e.g. a custom provider |
#### `auth-code-external` Auth Code flow using an external browser
* Same as `auth-code-embedded` however this can be done with the system browser
* Starts an integrated webserver to get the tokens at the end of the flow
* ⚠ This flow depends on 3rd party clients / launchers
* These clients are totally dependent on Mojangs [explicit approval](https://aka.ms/mce-reviewappid) and can - although unlikely to happen - be blocked at any time for any reason by them
* The 3rd party can change or delete their client without warning
* The 3rd party might be able to see your login activity
* Available 3rd parties:
* [DevAuth](https://github.com/DJtheRedstoner/DevAuth) (default)
| Property | Type | Default | Notes |
| --- | --- | --- | --- |
| `predefined-provider` | `String` | `devauth` | |
| `open-system-browser` | `bool` | `true` | Should the system browser be automatically opened with the sign in page? |
| `redirect-port` | `int` | automatically determined | Port used for the integrated webserver |
| `redirect-uri` | `String` | automatically determined | Designed as general purpose override for e.g. a custom provider |
#### `device-code` Device Code flow
* This flow generates a short code that needs to be verified online with the an account
* ⚠ This flow depends on 3rd party clients / launchers
* These clients are totally dependent on Mojangs [explicit approval](https://aka.ms/mce-reviewappid) and can - although unlikely to happen - be blocked at any time for any reason by them
* The 3rd party can change or delete their client without warning
* The 3rd party might be able to see your login activity
* Available 3rd parties:
* [MultiMC](https://github.com/MultiMC/Launcher) (default)
* [DevLogin](https://github.com/covers1624/DevLogin)
* [Prism](https://github.com/PrismLauncher/PrismLauncher)
| Property | Type | Default | Notes |
| --- | --- | --- | --- |
| `predefined-provider` | `String` | `multimc` | |
## FAQ
### How do I delete the login information?
Delete `%USERPROFILE%\.dev-auth-neo` (Windows) or `~/.dev-auth-neo` (Linux)
### I want to switch to another account
_What's the easiest way to do this?_
Set ``-Ddevauth.account=otherAccountName``
### Security?
The tokens are stored in a file on the disk in above specified folder.
As with all data on your PC, you as a user are responsible for keeping them secure.
You can revoke tokens in the [Microsoft account settings](https://account.live.com/consent/Manage).