authboss

module
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2020 License: MIT

README

Authboss

GoDoc Go Report Card Gopherbadger Maintainability

Authboss is a flexible authentication solution for Go Web Applications. It makes it easy to plug in authentication to an application and get a lot of functionality with little effort.

It is composed of 9 modules:

  • Database Authenticatable: hashes and stores a password in the database to validate the authenticity of a user while signing in.
  • Logoutable: implements user logout functionality
  • OAuthable: adds OAuth support.
  • Confirmable: sends emails with confirmation instructions and verifies whether an account is already confirmed during sign in.
  • Recoverable: resets the user password and sends reset instructions.
  • Registerable: handles signing up users through a registration process, also allowing them to edit and destroy their account.
  • Rememberable: manages generating and clearing a token for remembering the user from a saved cookie.
  • Timeoutable: expires sessions that have not been active in a specified period of time.
  • Lockable: locks an account after a specified number of failed sign-in attempts.

Why use Authboss?

Every time you'd like to start a new web project, you really want to get to the heart of what you're trying to accomplish very quickly and it would be a sure bet to say one of the systems you're excited about implementing and innovating on is not authentication. In fact it's very much the opposite: it's one of those things that you have to do and one of those things you loathe to do. Authboss is supposed to remove a lot of the tedium that comes with this, as well as a lot of the chances to make mistakes. This allows you to care about what you're intending to do, rather than care about ancillary support systems required to make what you're intending to do happen.

Here are a few bullet point reasons you might like to try it out:

  • Saves you time (Authboss integration time should be less than re-implementation time)
  • Saves you mistakes (at least using Authboss, people can bug fix as a collective and all benefit)
  • Should integrate with or without any web framework

Click here to get started!

For detailed documentation of the full public api, visit the gopkg directory.

Directories

Path Synopsis
cmd
internal
generators
Package generators : MIT License * * Copyright (c) 2017 Roland Singer [roland.singer@desertbit.com] * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software.
Package generators : MIT License * * Copyright (c) 2017 Roland Singer [roland.singer@desertbit.com] * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software.
pkg
authboss
Package authboss is a modular authentication system for the web.
Package authboss is a modular authentication system for the web.
authboss/defaults
Package defaults houses default implementations for the very many interfaces that authboss has.
Package defaults houses default implementations for the very many interfaces that authboss has.
authenticatable
Package authenticatable is responsible for hashing the password and validating the authenticity of a user while signing in.
Package authenticatable is responsible for hashing the password and validating the authenticity of a user while signing in.
confirmable
Package confirmable is responsible for verifying if an account is already confirmed to sign in, and to send emails with confirmation instructions.
Package confirmable is responsible for verifying if an account is already confirmed to sign in, and to send emails with confirmation instructions.
lockable
Package lockable handles blocking a user access after a certain number of bad login attempts
Package lockable handles blocking a user access after a certain number of bad login attempts
logoutable
Package logoutable allows users to log out (from auth or oauth2 logins)
Package logoutable allows users to log out (from auth or oauth2 logins)
oauthable
Package oauthable allows users to be created and authenticated via oauthable services like facebook, google etc.
Package oauthable allows users to be created and authenticated via oauthable services like facebook, google etc.
recoverable
Package recoverable takes care of resetting a user's password and sending reset instructions via email
Package recoverable takes care of resetting a user's password and sending reset instructions via email
registerable
Package registerable is responsible for everything related to registering a new resource (ie user sign up).
Package registerable is responsible for everything related to registering a new resource (ie user sign up).
rememberable
Package rememberable manages generating and clearing token for implementing persistent user logins from a saved cookie.
Package rememberable manages generating and clearing token for implementing persistent user logins from a saved cookie.
timeoutable
Package timeoutable takes care of verifying whether a user session has already expired or not.
Package timeoutable takes care of verifying whether a user session has already expired or not.
Package test defines implemented interfaces for testing modules
Package test defines implemented interfaces for testing modules

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL