lazaronixon/authentication-zero
lazaronixon/authentication-zero has 1,870 GitHub stars and 66 forks. GitHot measured 0 stars in 24 hours and -2 in 7 days. Last checked 2026-11-13 16:45 UTC. Last push 2024-12-05.
측정된 스타 증가
- in 24h
- 0
- in 7 days
- -2
- in 15 days
- 기록 수집 중
- in 1 month
- 기록 수집 중
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
소개
An authentication system generator for Rails applications.
보안README.md
OriginalAuthentication Zero
The purpose of authentication zero is to generate a pre-built authentication system into a rails application (web or api-only) that follows both security and rails best practices. By generating code into the user's application instead of using a library, the user has complete freedom to modify the authentication system so it works best with their app.
Installation
$ bundle add authentication-zero
If you are using Rails < 7.2, you must use version 3.
$ bundle add authentication-zero --version "~> 3"
If you are using Rails < 7.1, you must use version 2.
$ bundle add authentication-zero --version "~> 2"
Usage
$ rails generate authentication
Developer responsibilities
Since Authentication Zero generates this code into your application instead of building these modules into the gem itself, you now have complete freedom to modify the authentication system, so it works best with your use case. The one caveat with using a generated authentication system is it will not be updated after it's been generated. Therefore, as improvements are made to the output of rails generate authentication, it becomes your responsibility to determine if these changes need to be ported into your application. Security-related and other important improvements will be explicitly and clearly marked in the CHANGELOG.md file and upgrade notes.
Features
Essential
- Sign up
- Email and password validations
- Checks if a password has been found in any data breach (--pwned)
- Authentication by cookie
- Authentication by token (--api)
- Two factor authentication + recovery codes (--two-factor)
- Two factor authentication using a hardware security key (--webauthn)
- Verify email using a link with token
- Ask password before sensitive data changes, aka: sudo (--sudoable)
- Reset the user password and send reset instructions
- Reset the user password only from verified emails
- Lock mechanism to prevent email bombing (--lockable)
- Send e-mail confirmation when your email has been changed
- Manage multiple sessions & devices
- Activity log (--trackable)
- Log out
More
- Social login with omni auth (--omniauthable)
- Passwordless authentication (--passwordless)
- Send invitations (--invitable)
- "Sign-in as" button (--masqueradable)
- Multi-tentant application (--tenantable)
Generated code
- has_secure_password: Adds methods to set and authenticate against a bcrypt password.
- authenticate_by: Given a set of attributes, finds a record using the non-password attributes, and then authenticates that record using the password attributes.
- generates_token_for: Defines the behavior of tokens generated for a specific purpose.
- signed cookies: Returns a jar that'll automatically generate a signed representation of cookie value and verify it when reading from the cookie again.
- httponly cookies: A cookie with the httponly attribute is inaccessible to the JavaScript, this precaution helps mitigate cross-site scripting (XSS) attacks.
- signed_id: Returns a signed id that is tamper proof, so it's safe to send in an email or otherwise share with the outside world.
- current attributes: Abstract super class that provides a thread-isolated attributes singleton, which resets automatically before and after each request.
- action mailer: Action Mailer allows you to send email from your application using a mailer model and views.
- log filtering: Parameters 'token' and 'password' are marked [FILTERED] in the log.
- functional tests: In Rails, testing the various actions of a controller is a form of writing functional tests.
- system testing: System tests allow you to test user interactions with your application, running tests in either a real or a headless browser.
Sudoable
Use before_action :require_sudo in controllers with sensitive information, it will ask for your password on the first access or after 30 minutes.
Tenantable
Some artifacts are generated in the application, which makes it possible to implement row-level multitenancy applications. The Current.account is set using the current user account.
You should follow some steps to make it work:
- Add
account_idto each scoped table. ex:rails g migration add_account_to_projects account:references. - Add
include AccountScopedto scoped models. It set up the account relationship and default scope using the current account.
Set Current.account through the URL. http://myapp.com/:account_id. (optional)
- Add
require_relative "../lib/account_middleware"toconfig/application.rb. - Add
config.middleware.use AccountMiddlewareto your application class. - More customization is required...
Development
To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/lazaronixon/authentication-zero. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the AuthenticationZero project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
관련 프로젝트 살펴보기
trimstray/the-book-of-secret-knowledge
영감을 주는 목록, 매뉴얼, 치트시트, 블로그, 팁, 원라이너, CLI/웹 도구 등을 모은 컬렉션.
258,201 스타Hack-with-Github/Awesome-Hacking
해커, 펜테스터, 보안 연구자를 위한 다양한 Awesome 목록 모음.
125,429 스타swisskyrepo/PayloadsAllTheThings
웹 애플리케이션 보안과 모의 침투 테스트/CTF에 유용한 페이로드 및 우회 방법 목록.
82,654 스타caddyserver/caddy
빠르고 확장 가능한 멀티플랫폼 HTTP/1-2-3 웹 서버이며, 자동 HTTPS를 지원합니다
79,028 스타