Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

litetex-oss/mcm-dev-auth-neo

Version Build

DevAuth Neo (Fabric)

Authenticate Minecraft accounts in development environments.

This is a "reincarnation" of 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:

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
}

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 .) as delimiter
  • 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<String> 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 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 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 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

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.

Installation

Installation guide for the latest release

Usage in other mods

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.

Contributing

See the contributing guide for detailed instructions on how to get started with our project.

About

Minecraft mod that let's you authenticate accounts in development environments

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •