Authenticate Minecraft accounts in development environments.
This is a "reincarnation" of DevAuth but improved, updated and available directly as a Fabric mod.
via Maven Central (default)
Add the following to build.gradle:
dependencies {
modLocalRuntime 'net.litetex.mcm:dev-auth-neo:<version>'
// Further documentation: https://wiki.fabricmc.net/documentation:fabric_loom
}via Modrinth
Add the following to build.gradle:
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 {
modLocalRuntime 'maven.modrinth:dev-auth-neo:<version>'
// Further documentation: https://wiki.fabricmc.net/documentation:fabric_loom
}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
The configuration is dynamically loaded from (sorted by highest priority)
- Environment variables
- prefixed with
DEVAUTH_ - all properties are in UPPERCASE and use
_(instead of.) as delimiter
- prefixed with
- System properties
- prefixed with
devauth.
- prefixed with
- A configuration file located in
~/.dev-auth-neo/config.json
Full list of configuration options
| 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 |
3606h |
How long should fetched profile information(uuid and name) be cached? |
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<String> |
automatically determined |
- 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 |
- Same as
auth-code-embeddedhowever 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 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 (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 |
- 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 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:
| Property | Type | Default | Notes |
|---|---|---|---|
predefined-provider |
String |
multimc |
Delete %USERPROFILE%\.dev-auth-neo (Windows) or ~/.dev-auth-neo (Linux)
What's the easiest way to do this?
Set -Ddevauth.account=otherAccountName
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.
Installation guide for the latest release
Add the following to build.gradle:
dependencies {
modImplementation 'net.litetex.mcm:dev-auth-neo:<version>'
// Further documentation: https://wiki.fabricmc.net/documentation:fabric_loom
}Note
The contents are hosted on Maven Central. You shouldn't have to change anything as this is the default maven repo.
If this somehow shouldn't work you can also try Modrinth Maven.
See the contributing guide for detailed instructions on how to get started with our project.