Git Product home page Git Product logo

django-rest-framework-sso's Introduction

Namespace.ee

Homepage

We're a team of experienced software developers. We offer software development for starting and growing your business with quick and flexible agile software development methods.

Technology

We specialize in Python, Django & Django-rest-framework based back-end and React & React Native front-end and mobile applications.

Call to action

  • Book a call -> Cal.com modal

Experience

No matter what stage your application is currently at, we can offer a software development team ready to provide you with business value and reliable software development.

  • 9 years
  • 75k+ SaaS users
  • 500 miljon realtime data points a week
  • 6 SaaS from 0 to revenue
  • 2 mobile apps with 25k+ downloads

Clients

  • GSMvalve OÜ
  • Latitude59
  • MultiCharge OÜ (VOOL)
  • Weekend festival
  • Pakipoint
  • /construction tools rental business/
  • /plaintiff/

Our work / Projects / Case studies

We’ve helped many businesses design, build, and launch high performance web applications that last.

  • Showcases (animated / changing)
    • SaaS software
      • Navirec
      • GSMtasks
    • Interactive product configurator
      • VOOL
    • Digital signing solutions
      • /construction tools rental business/
    • Integrations
      • /plaintiff/
    • Ticket sales software
      • Weekend festival
      • Latitude59
    • Warehouse automation for E-commerce
      • Parcelfellows
      • Pakipoint
    • Back-office automation
      • Sorbum

Our work (details page)

  • Heading image
    • Website link
    • What we did (short)
  • Description of the project
  • Key features
  • Challenges & solutions
  • Screenshots
  • Technology used (like Django, React.js etc. with logos)
  • Testimonial
  • Contact us to build something similar

What we do / Services

We are passionate about software engineering and the complete process that leads to creating the web applications we deliver.

What makes us different is that we have the deep and wide experience of developing web applications as a team working together 9+ years.

We like to build a solid relationship with our clients. Understand their ideas and goals from the start and deliver them with adding our expertice of building rock-solid web applications that live up to the expecations that the client envisioned from the start.

The development process incorporates quick and flexible Agile development methods:

Requirements -> Design -> Coding -> Testing -> Live

You would be working together with a Senior software developer team lead from the start to execute every step of the software development cycle. Work process is visualised on a Kanban board that the client always has access to for providing feedback and keeping track of the project.

We love good documentation but nobody likes writing it. So we autogenerate it. The API's we deliver are self documenting with OpenAPI specification standard documentation and versioned with every change to keep compatibility easy.

Our process / Development roadmap

  1. Planning
  • Requirements gathering
  • Business needs analysis
  • Project planning
  1. Design
  • Architecture
  • API spec
  • Visual style
  • UI/UX design
  • Usable prototyping
  1. Development
  • Back-end developments
  • Front-end developments
  • Integrations
  1. Testing
  • Code reviews
  • Automated testing
  • Integration tests
  1. Deployment
  • Product rollout
  • Performance monitoring
  • Performance optimization
  • Training
  1. Support & maintenance
  • Software updates
  • Bug fixing
  • Customer support

Backend development

Python

  • Django
  • REST API
    • Django REST Framework
    • OpenAPI spec
  • Integrations
  • Database
    • PostgreSQL
  • Job queues
    • Celery
    • RabbitMQ
  • Realtime data processing
    • Spark
    • Kafka

Frontend development

TypeScript / JavaScript

  • React.JS
    • Hooks
    • Redux
  • Next.JS
  • Vercel
  • Lambda functions

Mobile app development

  • React Native
  • Fastlane build automation
  • Codepush

Open source

  • react-calendar-timeline
  • django-rest-framework-sso
  • django-rest-framework-sideloading

Contact

  • Who we are
  • Team photos
  • Contact form

django-rest-framework-sso's People

Contributors

andreiavram avatar demonno avatar lnagel avatar masb3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django-rest-framework-sso's Issues

Release a package please.

It's often inconvenient to install from git (like while building docker images where no one normally install git). Release a PyPi package please.

difference between django-rest-framework-sso and oauth2

Hi. I came here from stackoverflow, I‘ve glanced README, Is my understanding correct:
django-rest-framework-sso is a simplified version of oauth2, and since oauth2 basiclly
focus on authorization, django-rest-framework-sso also contains authentication feature?

request import

hi I'm trying to make SSO in my projects can you and I'm new on this can you give me some basic examples of how to do it probably

Unauthorized token signing key.

Encoding is being done with private key and key_id in header is actually private key path, But when payload needed to decoded in AuthorizationView, key_id is fetched from header and for decoding, public key is needed to get form get_public_key_and_key_id in keys.py. Now the key_id passed to this function is private_key_id and we are expecting to get public key. So that's why it throws error.

REST_FRAMEWORK_SSO = {
'CREATE_SESSION_PAYLOAD': 'rest_framework_sso.utils.create_session_payload',
'CREATE_AUTHORIZATION_PAYLOAD': 'rest_framework_sso.utils.create_authorization_payload',
'ENCODE_JWT_TOKEN': 'rest_framework_sso.utils.encode_jwt_token',
'DECODE_JWT_TOKEN': 'rest_framework_sso.utils.decode_jwt_token',
'AUTHENTICATE_PAYLOAD': 'rest_framework_sso.utils.authenticate_payload',
'ENCODE_ALGORITHM': 'RS256',
'DECODE_ALGORITHMS': None,
'VERIFY_SIGNATURE': True,
'VERIFY_EXPIRATION': True,
'VERIFY_SESSION_TOKEN': True,
'EXPIRATION_LEEWAY': 0,
'SESSION_EXPIRATION': None,
'AUTHORIZATION_EXPIRATION': datetime.timedelta(seconds=300),
'IDENTITY': 'authserver',
'SESSION_AUDIENCE': ['authserver'],
'AUTHORIZATION_AUDIENCE': ['authserver'],
'ACCEPTED_ISSUERS': ['authserver'],
'KEY_STORE_ROOT': None,
'PUBLIC_KEYS': {
    'authserver': 'authserver/public_key.pem'
},
'PRIVATE_KEYS': {
    'authserver': 'authserver/private_key.pem'
},

'AUTHENTICATE_HEADER': 'JWT',
}

QuerySetReadableMixin is not defined

When trying to add the Custom class as given in the README, I get this error.
Also, the current branch does not have this anywhere in the code. Is this an external library Mixin?

Can't run celery tasks - There is no Authentication header there

Hi,
I have a microservice Django system in which I run celery tasks. The thing is that one of my celery tasks calls a function that
makes a request to another microservice and it has no knowledge of the current "Authentication" Header.

It is supposed to run in the background even when the session is terminated.

I tried to create a token using your functions before executing the request. But o success.

Any ideas?

Need help with "detail": "Unauthorized token signing key." message

I am having a challenge on the authorization token side. Here's what I have so far with 2 apps:

Primary login app:

I am able to get the token after the POST of username and password.

"Other app":

Replaying that token on the "Other app" I get:

"detail": "Unauthorized token signing key."

What is this message telling me and how can I debug this further?

Thanks!

Discord SSO Method Get Not Allowed

I'm trying to add Discord auth to a DRF project using this framework (react frontend, DRF backend).

There's a button on the UI that links to the following oauth link: https://discord.com/api/oauth2/authorize?client_id=713381169349263361&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fsession&response_type=code&scope=identify (most permissions cut out for brevity)

Yet when I run this, after authorizing with Discord, it redirects back to my app and gives me an error

Method GET not allowed.

When I try to do /authorize instead, it gives

Authentication credentials not provided.

I might just be misunderstanding something here, but what might I be doing wrong?

I added the DEFAULT_AUTHENTICATION_CLASSES in REST_FRAMEWORK and set REST_FRAMEWORK_SSO to 'AUTHENTICATE_PAYLOAD': 'api.authentication.authenticate_payload' as described in the README. Is there something else I'm missing?

The end goal was to allow a user to sign in with Discord, then have that create an account in Django (instead of having normal registration enabled).

Overriding to add additional data in the auth token throws error

I have overridden the ObtainAuthorizationTokenView to add additional data as specified. However, requesting for the authorization token using the session token now throws the following error:

{
    "user": [
        "This field is required."
    ]
}

Any way to solve this?
Without the overrides, the /session and /authorize apis work well.

Examples of `django-rest-framework-sso`

Thanks for your contribution.
However, I googled for examples of your releases, and I found nothing except README from Github and PyPI. Most of developers may not have too much knowledge about your idea. An explained tutorial or a runnable example like DRF would be much friendly for us to use it in our practices.

Why do i have a error jwt decode if i use to only public key my other app ?

if i make this

    'AUTHENTICATE_PAYLOAD': 'otherapp.authentication.authenticate_payload',
    'VERIFY_SESSION_TOKEN': False,
    'IDENTITY': 'otherapp',
    'ACCEPTED_ISSUERS': ['myapp'],
    'KEY_STORE_ROOT': '/srv/otherapp/keys',
    'PUBLIC_KEYS': {
        'myapp': ['public.pem', ],  # only public keys in these files
    },
}````

I have  a error    "Error decoding signature."  

Implementation between different servers on the cloud?

  • I want to put a django SSO server on the cloud in its own server, like "sso.example.com".
  • Then I want to use a service let's call it "service1.example.com".
  • We basically have two different servers now, each with their own OS.

Question:
How can "service1.example.com" communicate with django sso server so it can authenticate the tokens and retrieve user information settings?

JWT in cookie

It would be nice if JWT could be stored in HttpOnly (and in production Secure, too) cookie. Any plans to implement it?

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.