All Projects → games647 → Flexiblelogin

games647 / Flexiblelogin

Licence: mit
A Sponge minecraft server plugin for second factor authentication

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Flexiblelogin

Mosquitto Go Auth
Auth plugin for mosquitto.
Stars: ✭ 212 (+190.41%)
Mutual labels:  plugin, authentication, auth
Go Guardian
Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication.
Stars: ✭ 204 (+179.45%)
Mutual labels:  authentication, auth, 2fa
Craftbook
🔧 Machines, ICs, PLCs, and more!
Stars: ✭ 226 (+209.59%)
Mutual labels:  minecraft, sponge, plugin
Qtfirebase
An effort to bring Google's Firebase C++ API to Qt + QML
Stars: ✭ 208 (+184.93%)
Mutual labels:  plugin, authentication, auth
Changeskin
Allows your players to change their skin by command
Stars: ✭ 118 (+61.64%)
Mutual labels:  minecraft, sponge, plugin
Nucleus
The Ultimate Essentials Plugin for Sponge.
Stars: ✭ 144 (+97.26%)
Mutual labels:  minecraft, sponge, plugin
Viaversion
Allows the connection of newer clients to older server versions for Minecraft servers.
Stars: ✭ 463 (+534.25%)
Mutual labels:  minecraft, sponge, plugin
Next Authentication
Authentication & Authorization library for the Next.js framework
Stars: ✭ 55 (-24.66%)
Mutual labels:  authentication, auth
Postman
1.12.2 anarchy client :)
Stars: ✭ 54 (-26.03%)
Mutual labels:  minecraft, mod
Authex
Authex is an opinionated JWT authentication and authorization library for Elixir.
Stars: ✭ 73 (+0%)
Mutual labels:  authentication, auth
Wizardry
Delve into spell creation and become a wizard
Stars: ✭ 59 (-19.18%)
Mutual labels:  minecraft, mod
Icbm 2
Missile mod for minecraft forge
Stars: ✭ 54 (-26.03%)
Mutual labels:  minecraft, mod
Modio Unity
Unity Plugin for integrating mod.io - a modding API for game developers
Stars: ✭ 53 (-27.4%)
Mutual labels:  mod, plugin
Luckperms
A permissions plugin for Minecraft servers.
Stars: ✭ 1,100 (+1406.85%)
Mutual labels:  minecraft, sponge
Laravel5.7 Vue Cli3 Boilerplate
Boilerplate / Starter kit. Laravel 5.7, Vue CLI 3 — Authentication with Email Verification. REST API.
Stars: ✭ 52 (-28.77%)
Mutual labels:  authentication, auth
Killy
🎮 🆓 Play TiDB in Minecraft! Created by @gaocegege @codeworm96 @hawkingrei in Go Hack 2017
Stars: ✭ 59 (-19.18%)
Mutual labels:  minecraft, plugin
Redprotect
RedProtect Easy and Light Weight Antigrief plugin.
Stars: ✭ 51 (-30.14%)
Mutual labels:  minecraft, sponge
Opencomputers
Home of the OpenComputers mod for Minecraft.
Stars: ✭ 1,104 (+1412.33%)
Mutual labels:  minecraft, mod
Spongeforge
A Forge mod that implements SpongeAPI
Stars: ✭ 1,106 (+1415.07%)
Mutual labels:  minecraft, sponge
Connectedtexturesmod
Extensions to the vanilla model system, mainly for connected textures
Stars: ✭ 64 (-12.33%)
Mutual labels:  minecraft, mod

FlexibleLogin

Security Notice: If you use a version 0.16.X version, update to 0.16.5+ or disable the change password command. 0.16.5 fixed a security bug introduced in this commit. Older versions before 0.16 are not affected.

Description

A Sponge Minecraft server plugin for second authentication. It has a built-in TOTP support.

Do you want to let your players protect their account (from hackers/login stealer) and keep playing while the session server is down. You can use this little plugin. You can protect your account with a password you choose or with a time based password created from a secret key, generated just for you.

Requirements

  • Sponge 7+ (FlexibleLogin 0.17.X is the last version for Sponge 6)
  • Java 8+

Language

This plugin has configurable language files. By default it only ships the english version of it, but there are community driven templates on the wiki page: https://github.com/games647/FlexibleLogin/wiki

Commands

User commands:
/reg /register <password> <password> - Registers using a specific password
/register - Generates your secret code for TOTP
/changepw /cp /changepassword <password> <password> - Changes your current password
/log /l /login <password|code> - Login using your password or time based code
/logout - Logs you out
/mail /setemail - Sets your mail address
/forgot /forgotpassword - Sends a recovery mail to the mail address
/unregister <uuid|name> - delete an account

Admin commands: (you can use /flexiblelogin as an alias) 
/fl <reload|rl> - reloads the config
/fl forcelogin <name> - Force login the user
/fl <accounts|acc> <name|ip> - Get list of user accounts
/fl <unregister|unreg> <name|uuid|--all> - Deletes the account of a user or all using the -a flag
/fl <register|reg> <name|uuid> <pass> - Register the user with a specific password
/fl <resetpw|resetpassword> <name> - Sets a new temp password for a new user

Permissions

flexiblelogin.admin - Permission to delete accocunts
flexiblelogin.command.login - Use the /login command
flexiblelogin.command.logout - Use the /logout command
flexiblelogin.command.changepw - Use the /changepassword command
flexiblelogin.command.register - Use the /register command
flexiblelogin.command.mail - Use the /setemail command
flexiblelogin.command.forgot - Use the /forgot command
flexiblelogin.no_auto_login - Players with this won't be auto logged in by the ip auto login feature
flexiblelogin.bypass - Users who have this permission can skip authentication

Config

# Should unregistered player be able to join the server?
allowUnregistered=true
# Do you allow your users to skip authentication with the bypass permission
bypassPermission=false
# Should the player name always be case sensitive equal to the time the player registered?
caseSensitiveNameCheck=true
# Should only the specified commands be protected from unauthorized access
commandOnlyProtection=false
# Email configuration for password recovery
emailConfiguration {
    # Username for the account you want to the mail from
    account=""
    # Email contents. You can use HTML here
    contentTemplate {
        arguments {}
        closeArg="}"
        content {
            text="New password for Builder{name=player, optional=true} on Minecraft server Builder{name=server, optional=true}: Builder{name=, optional=true}"
        }
        openArg="{"
        options {
            closeArg="}"
            openArg="{"
        }
    }
    # Is password recovery using an mail allowed
    enabled=false
    # Mail server
    host="smtp.gmail.com"
    # Password for the account you want to the mail from
    password=""
    # SMTP Port for outgoing messages
    port=465
    # Displays as sender in the mail client
    senderName="Your Minecraft server name"
    # Email subject/title
    subjectTemplate {
        arguments {}
        closeArg="}"
        content {
            text="Your new Password"
        }
        openArg="{"
        options {
            closeArg="}"
            openArg="{"
        }
    }
}
# Algorithms for hashing user passwords. You can also choose totp
hashAlgo=bcrypt
# Should the plugin login users automatically if it's the same account from the same IP
ipAutoLogin=false
# Custom command that should run after the user tried to make too many attempts
lockCommand=""
# How many login attempts are allowed until everything is blocked
maxAttempts=3
# How many accounts are allowed per ip-address. Use 0 to disable it
maxIpReg=0
# Interval where the please login will be printed to the user
messageInterval=2
# The user should use a strong password
minPasswordLength=4
# Should this plugin check for player permissions
playerPermissions=false
# Experimental feature to protect permissions for players who aren't logged in yet
protectPermissions=false
# If command only protection is enabled, these commands are protected. If the list is empty all commands are protected
protectedCommands=[
    op,
    pex
]
# Teleport the player to a safe location based on the last login coordinates
safeLocation=false
# Database configuration
sqlConfiguration {
    # Database name
    database=flexiblelogin
    # Password in order to login
    password=""
    # Path where the database is located. This can be a file path (h2/SQLite) or an IP/Domain (MySQL/MariaDB)
    path="%DIR%"
    # Port for example MySQL connections
    port=3306
    # SQL server type. You can choose between h2, SQLite and MySQL/MariaDB
    type=H2
    # It's strongly recommended to enable SSL and setup a SSL certificate if the MySQL/MariaDB server isn't running on the same machine
    useSSL=false
    # Username to login the database system
    username=""
}
# Should the plugin don't register alias /l (used by some chat plugins) for /login command 
supportSomeChatPlugins=false
teleportConfig {
    coordX=0
    coordY=0
    coordZ=0
    # Should the plugin use the default spawn from the world you specify below
    defaultSpawn=false
    enabled=false
    # Spawn world or let it empty to use the default world specified in the server properties
    worldName=""
}
# Number of seconds a player has time to login or will be kicked.-1 deactivates this features
timeoutLogin=60
# Should the plugin save the login status to the database
updateLoginStatus=false
# Regular expression for verifying validate player names. Default is a-zA-Z with 2-16 length
validNames="^\\w{2,16}$"
# How seconds the user should wait after the user tried to make too many attempts
waitTime=300

Downloads

https://github.com/games647/FlexibleLogin/releases

Development builds

Development builds of this project can be acquired at the provided CI (continuous integration) server. It contains the latest changes from the Source-Code in preparation for the following release. This means they could contain new features, bug fixes and other changes since the last release.

Nevertheless builds are only tested using a small set of automated and a few manual tests. Therefore they could contain new bugs and are likely to be less stable than released versions.

https://ci.codemc.org/job/Games647/job/FlexibleLogin/changes

Screenshots:

TOTP Key generation (/register)

Minecraft image picture

TOTP App

Authenticator

You can see there a time generated code which can be used for the login process. /login <code> Additionally it display your user account name and the server ip.

Apps (Open-Source only)

IOS

Android

Desktop (Linux, Mac, Windows):

  • YubiKey Authenticator Download
    • Requires YubiKey hardware token
  • NitroKey App Download
    • Requires Nitrokey hardware token
  • OnlyKey App Chromium Store
    • Requires OnlyKey hardware token
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].