Giter Site home page Giter Site logo

dethos / django-cryptolock Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 3.0 98 KB

Authentication using cryptocurrency wallets for Django projects

Home Page: https://django-cryptolock.readthedocs.io/

License: MIT License

Makefile 2.43% Python 91.49% HTML 6.08%
authentication bitcoin bitid cryptocurrency-tools cryptolock django hacktoberfest monero

django-cryptolock's People

Contributors

dethos avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

django-cryptolock's Issues

Remove pybitid dependency

pybitid was added as a dependency in order to speed up BitID implementation, however that package hasn't been maintained for 5 years. It includes in its source a copy of pybitcointools, a package that has been abandoned by its author.

I can see two viable ways forward:

  • Find an alternative that is maintained
  • Build the BitID specific functionality on top of a maintained bitcoin library and add it to the project.

Realistically, option number 2 will be the most probable way forward, even though option 1 is better.

Make the SessionMiddleware optional

At the moment (version 0.0.1) django_cryptolock only supports Django projects that make use of the SessionMiddleware. This is due to the current "proof of concept" state of the project.

In order to be useful the package must support other usages and scenarios, such as APIs (using DRF for example).

The best way to implement this new feature is not yet clear, lets use this issue for discussion.

Initial support for BitID

This project started as a "proof-of-concept" for the proposed "monero crypto-lock" mechanism. However the main objective is to support similar mechanisms based on other cryptocurrencies.

The goal of this issue is to add support to BitID. Like it happens with the Monero version, at first just a working prototype is needed, that we could later use to iterate on and improve.

Local signature validation

Currently to verify the signatures django-cryptolock requires a connection to a monero wallet RPC. While this works it adds complexity and an extra dependency to all projects that rely on this package.

Ideally we should provide the user with the option of doing the signature validation locally.

It is not clear yet how this could be achieved, lets use this issue for a thoughtful discussion.

Add support for Django Rest Framework

There should be an easy-way to integrate the Django-cryptolock with projects that make use of Django Rest Framework.

The same way set of Views and Forms are provided for django projects, some base APIViews and Serializers should be available to use without much effort.

The focus of this issue is to have a basic functionality ready to use, without caring too much with extensibility and other ways it could be configurable in the future.

Sign up does not verify if the address already exists

  • Django-Cryptolock version: 0.0.2
  • Django version: 2.2
  • Python version: 3.7
  • Operating System: Linux

Description

When someone tries to signup with an address that is already in use and exception is thrown.
No checks are made to verify if the address already exists.

What I Did

Filled the sign up form and got:

IntegrityError at /auth/signup
UNIQUE constraint failed: auth_user.username
Request Method:	POST
Request URL:	http://localhost:8000/auth/signup

Improve test coverage

There's still lots of code not covered by the test suite and even the quality of the existing tests could be greatly improved.

In order to be objective and make this issue actionable (but not mandatory for any contribution :)) lets aim for a target of 90% coverage.

Add a detailed tutorial to the documentation

We should add to the documentation a detailed tutorial on how to use this app.

On the "Readme" file, we have a "Quick Start" section, but for those who need more information and details about the inner working of the App, a detailed tutorial will be more valuable.

Check if the code is properly formatted

We need a new stage on the CI, that checks if commits and/or pull requests are correctly formatted using black.

We should make use of the --check option and fail if there are any changes required.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.