This repository has been archived by the owner. It is now read-only.
dwarf
Dwarf
General HTTP Authentication Framework for Crystal, based on HTTP Server Handler means it compatibles with most of web frameworks which is could add http server handler(middlewave), such like kemal, router.cr, raze etc. Inspired from the awesome Ruby's warden gem.
Supperted Frameworks
Ignored Frameworks
Usage
require "dwarf"
# Load the framework plugin appropriate to your project, require one at least.
#
# Common request, support built-in http server, raze
# require "dwarf/services/common"
# Kemal framework
# require "dwarf/services/kemal"
# Amber framework
# require "dwarf/services/kemal"
# Create a password strategy
class PasswordStrategy < Dwarf::Strategies::Base
def valid?
params["username"]? && params["password"]?
end
def authenticate!
if params["username"] == "dwarf" && params["password"] == "foobar"
user = JSON.parse({ "name" => params["username"] }.to_json)
success!(user)
else
fail!
end
end
end
# Instance dwarf manager(handler)
dwarf_manager = Dwarf::Manager.new do |config|
config.register_strategy("password", PasswordStrategy.new)
config.default_strategies(strategies: ["password"])
end
# Then add `dwarf_manager.handler` to framework's handlers
Here has some examples for usages.
Installation
Add this to your application's shard.yml
:
dependencies:
dwarf:
github: icyleaf/dwarf
TODO
- Stores(session)
- Callbacks
Contributing
- Fork it ( https://github.com/icyleaf/dwarf/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- icyleaf - creator, maintainer
Repository
dwarf
Owner
Statistic
- 0
- 0
- 1
- 0
- 2
- almost 7 years ago
- November 16, 2017
License
MIT License
Links
Synced at
Thu, 07 Nov 2024 12:23:49 GMT
Languages