Skip to content

kotmatross28729/OfflineAuth

 
 

Repository files navigation

OfflineAuth 1.7.10 Fork (Forge)

Beta Minecraft authentication system contained in a Forge mod. (Please note the beta) Please report any bugs, especially security holes.

image

Wiki

OfflineAuth wiki

Motivation

Original: "Microsoft forcing people to migrate from Mojang to Microsoft. Oh, and now chat reports."

My: "Authentication method independent of any external servers (Mojang/Microsoft/Other third party services). A.K.A. My server - My authentication"

Tell me more

This mod runs a small rest server (spark) alongside the main Minecraft process. This keeps everything contained on the server which could even run on a local network, independent of any external auth servers.

Getting started

If you are a server operator:

  • Drop the mod jar into mods folder. Let it generate a config.
  • Your hosting solution needs to provide you with the option to open additional ports. Pick a port and set it in the config (default: 4567). Minecraft and the rest server can not both listen on the same port.
  • Tell your players about the port they need to input in order to be able to register accounts.
  • Use the /fingerprint command to get a fingerprint of the server public key. Tell players about it too.

If you are a player:

  • Drop the mod jar into your mods folder.
  • Add server in the multiplayer menu. Go to the Manage auth menu.
  • Change the auth port if needed, and register an account. Afterwards you should be able to join the server. If you are registering an account for the first time, you will have to confirm the public key fingerprint, and retry.

Features

  • Registration and deletion of accounts, changing account password and displayname
  • Working skins implementation (with the ability to change them without leaving the game, just re-enter on server). Also, single-player support
  • Allowing registration only to those who have one time tokens (generate those with the /gentoken command)
  • Config options can be changed via file or server console
  • End-to-end encryption of credentials
  • Possibility of logging in with a keypair, rather than with a password
  • Backport of player faces in the multiplayer tab menu (But I recommend using TabFaces)
  • Integration with Custom Main Menu, if a button or label has a name specified in config, a default server auth menu and server join action will be added to them
  • Integration with Server Utilities (skin in the GUIs)
  • Integration with TabFaces (skin)

Commands

  • /changename <player> <displayname> - Changes the username of a player (warning: this resets the user's progress)
  • /deleteuser <identifier> (alias: deluser) - Delete a player account
  • /listusers (alias: luser) - List registered users
  • /playerexists <identifier/displayname> (alias: playerex) - Display username and displayname of a user, if registered
  • /gentoken - Generates a one time use account creation token
  • /fingerprint - Displays the fingerprint of the public key of the server (if users know it in advance, this can tell them if someone is performing a man in the middle attack on them)
  • /deleteskin <identifier> (alias: delskin) - Deletes the skin of a user
  • [DEPRECATED: use CPM for capes] /deletecape <identifier> (alias: delcape) - Deletes the cape of a user
  • /oaconfig <list|help|get|set> [config_string] [value] - Changes given config option, only usable in the server console (more granular permissions might be added)
  • /myname - Displays all possible name variables in the chat
  • /myuuid - Displays all possible player UUID's in the chat
  • /registrationCooldown <(<ip> <delete/del>)/(<clear>)> (alias: regCD) - Remove IP from cooldown list / clear entire list

Credits

Building

gradlew build should do the trick.

Contact

License

LGPLv3+SNEED

Feel free to help translate the mod, open PR's or send lang files directly to me

Buy me a coffee

About

1.7.10 Forge alternate Minecraft authentication system

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%