This is my first plugin posted on spigot, I unable to find a single 2FA with backup codes on spigot. So in the attempt to make the perfect 2FA for minecraft, Easy Authenticator was born. A light weight plugin that allows users to connect their phone to their minecraft account using google authenticator or the authy app. In the unfortunate case you lose your phone, you can use your backup code and get a new Auth Key. It has support for QR codes so you wont have the issue of typing long text.
its config looks as follows
Code (Text):
Blocked:
Break: true
Place: true
Move: false
Command: true
Message:
UsePrefix: true
Prefix: '&6EasyAuth * &7'
Login:
- '&4Please Enter Your 2FA Code!'
- '&4Or Enter Your Backup Code'
LoginNew:
- '&8Since you have so much power you need to put a 2FA code on your account'
- '&8Your Code is &3 %CODE% '
- '&8Please Add 2FA before you leave otherwise you will have to set it up next time'
- '&2%QR%Click to Copy Link to %QR% QR Code'
- '&8Then use the code you get to confirm in chat!'
BackUpCode:
- '&8Below is your backup code'
- 'New Code: &3 %BACKUPCODE% '
BackUpCodeNew:
- '&8Below is your new backup code'
- 'New Code: &3 %BACKUPCODE% '
AccessGranted: '&3Welcome Back! access granted'
WrongCode: '&4Sorry that isnt right, it will be a six didgit code like ******'
CommandNotVerified: '&4Ah ah ah, you didnt say the magic word'
CommandNotAllowed: '&4Silly Goose, hands off!'
FinishSetup: '&8Sorry for the hassle <3'
Error: '&4We encountered an error. =('
CoolDowns: '&4You Cant do that again for %seconds% seconds.'
Help: '&6Do /auth <credit, reset,backup> player'
Auth:
Group: ServerName
Name: '%PLAYER%'
Reset: '&8Your Password was reset please set a new one before logging out.'
TimeRetry: 5
And here is how data gets stored
Code (Text):
authcodes:
uuid:
code: 32 bit text string
backup: 1
One of our unique features is our QR code setup
We also have the feature to block brute force attempts with a cooldown
Our backup codes are unique to this plugin and something that can really set us apart from other plugins where you may need to contact an admin
This is my first public plugin so please give me feedback on how your experience goes!
Also Version Testers would be wonderful!
To clear up any confusion, this will require the downloading of google authenticator or a similar app to your phone