All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Autoloading & Zeitwerk issues
- Update dependency to JWT 2.2.1
- Update dependency to Rails 5
- Implement
#respond_to_missing?
inAuthenticable
module
- Generators
- Stop trying to retrieve user from empty payload when no token is given
- Parsing of token controller to handle namespaces correctly
- Configurable default validations by adding
verify_options
parameter to AuthToken initializer
- Configurable unauthorized response by overriding
Authenticable#unauthorized_entity
- Deprecated features (see deprecated features in version 1.5)
- Exception configuration option
Knock.not_found_exception_class_name
- Multiple entity authentication (e.g. User, Admin, etc)
- Possibility to have permanent tokens
- Adding config options for exception class
- Generator for token controller. E.g.
rails g knock:token_controller user
- Deprecated
Authenticable#authenticate
in favor ofAuthenticable#authenticate_user
- Deprecated use of
Knock.current_user_from_token
in favor ofUser.from_token_payload
- Deprecated use of direct route to
AuthTokenController
in favor of generating a token controller - No need to mount the engine in
config/routes.rb
anymore
- Allow use of any or no prefix in authorization header.
This fixes an unwanted breaking change introduced in
1.4.0
forcing the use of theBearer
prefix.
- Use lambda for audience verification
- Allow use of rails versions above 4.2
- Travis integration
- Contribution guidelines
- URL authentication
- Allow use of different encoding algorithm
- Expose
current_user
in the controllers without authenticating
- Audience verification in token
- Use lambda syntax compatible with older ruby versions
- A few typos
- Configuration option for how the current_user is retrieved when signing in.
- Configuration option for the handle attribute (email by default).
- Configuration option for how the current_user is retrieved when validating a token. (#1)
- Use "sub" claim to store the user id by default instead of "user_id". (#1)
- Decode auth0_client_secret in default configuration for Auth0
Knock.token_lifetime
configuration variableKnock.token_secret_signature_key
configuration variableKnock.token_audience
configuration variable- audience claim verification when decoding token
Knock.setup
method for configuration inknock.rb
initializer- generator for initializer (rails g knock:install)
Knock::Authenticable
to secure endpoints withbefore_action :authenticate
AuthToken
model provides JWT encapsulationAuthTokenController
provides out of the box sign in implementation