Giter VIP home page Giter VIP logo

authorizerdev / authorizer Goto Github PK

View Code? Open in Web Editor NEW
1.4K 1.4K 143.0 11.34 MB

Your data, your control. Fully open source, authentication and authorization. No lock-ins. Deployment in Railway in 120 seconds || Spin a docker image as a micro-service in your infra. Built in login page and Admin panel out of the box.

Home Page: https://authorizer.dev

License: MIT License

Go 79.02% Dockerfile 0.10% Makefile 0.29% CSS 0.05% TypeScript 20.27% Shell 0.21% JavaScript 0.05%
2fa auth authentication authorization docker golang graphdb graphql hacktoberfest magic-link microservice nosql oauth2 role-based-access-control security social-logins sql typescript user-privileges

authorizer's People

Contributors

agarwal-nitesh avatar anand-panigrahi avatar anik-ghosh-au7 avatar catusax avatar converter-user-old avatar cosark avatar deep-codes avatar foestauf avatar hiranivipul avatar imchairmanm avatar jerebtw avatar jyash97 avatar lakhansamani avatar leandergangso avatar luclu7 avatar manojown avatar medvedewem avatar minilikmila avatar miqe avatar mussiet avatar olatunji-longe avatar pjort avatar productdevbook avatar samyakbhuta avatar scaletech-milan avatar siimsams avatar szczepad avatar testwill avatar vicg853 avatar vishwasshashidhar 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  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  avatar  avatar  avatar  avatar  avatar

authorizer's Issues

Signup should not support protected role signup

Version: x.y.z

Describe the bug

Steps To Reproduce

Expected behavior

Screenshots

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context

Add query to get new access token

  • If the user has an expired access token and valid refresh token
    • generate a new token and set in response + cookie
  • If the user has a valid access token return the same and set in cookie

Update the email template sent to user

Feature Description

Make a generic email for verification mails that are sent to users during

  1. signup mutation
  2. updateProfile mutation if email is change

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Add meta query

Descrption

Add: _meta query that lets the client know the current configuration,

{
   version: `0.1.0.beta`
   isGoogleLoginEnabled: true/false
   isFacebookLoginEnabled: true/false
   isTwitterLoginEnabled: true/false
  isBasicAuthEnabled: true/false
  isEmailVerificationEnabled: true/false
}

Note: this meta-information should also be there with token information as one can configure the frontend UI based on this.

Refactor social login to use common util to save data

Version: x.y.z

Describe the bug

Steps To Reproduce

Expected behavior

Screenshots

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context

fix: verify role in middleware

Version: x.y.z
Latest

Describe the bug
Role for a given JWT token should be verified against the roles of user. This should be done in auth middleware
Here is the util:

func VerifyAuthToken(token string) (map[string]interface{}, error) {

Steps To Reproduce

Expected behavior

Screenshots

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context

Add support for multiple sessions

Feature Description

Currently only one active session of user is valid.
Ideally we would like to allow user to have multiple sessions and keep track of that in db

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Add support for JS script via env

Feature Description
Allow user to write JS script and manipulate the JWT token contents.
Ref: https://hasura.io/docs/latest/graphql/core/guides/integrations/auth0-jwt.html
This enable users to use platforms like hasura with more security

Describe the solution you'd like

  • Use .env called SCRIPT
  • Expose the Go context and user as param. Expected return is JSON object
  • Use https://github.com/rogchap/v8go to execute JS on start of server

Describe alternatives you've considered

Additional context

Create docker image

  • Create Docker file
  • Create image
  • Create Docker compose file to run with postgres

Implement OIDC protocol on top oauth2 for secure authentication

Feature Description

Currently, we are just authorizing users using oauth2, but open id lets us authenticate users more securely on top of oauth2

Describe the solution you'd like

Check the following video on how it works
youtube.com/watch?v=996OiexHze0

Describe alternatives you've considered

Additional context

Add support for following envs

Envs to be supported

  • PORT
  • DATABASE_URL
  • CALLBACK_URL
  • ADMIN_SECRET
  • PASSWORD_ENCRYPTION_KEY
  • FACEBOOK_ID
  • FACEBOOK_SECRET
  • GITHUB_ID
  • GITHUB_SECRET
  • GOOGLE_ID
  • GOOGLE_SECRET
  • TWITTER_ID
  • TWITTER_SECRET
  • EMAIL_SERVER=smtp://username:[email protected]:587
  • EMAIL_FROM=NextAuth [email protected]
  • DATABASE_URL=sqlite://localhost/:memory:?synchronize=true

Add ability to load env file using cli arg

Description

Currently, env is either loaded from '.env' or using system vars.
It would be good to have -env_file flag where user can specify env file path and variable are loaded from that file

Add ability to update role of a user

Feature Description
Create a mutation for admins only, so that they can update roles of a user

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Allow login and token verification with multiple roles

Version: x.y.z

Describe the bug

Steps To Reproduce

Expected behavior

Screenshots

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context

Add login wall which can be integrated with JS SDK

  • Create /app route
  • Serve application built using react sdk
  • Set global data with /app route request
  • Global state data should be passed as query string
  • Make sure global state is base64 encoded
  • Make sure state data includes the redirect url
  • Add Allowed origins env
  • Make sure redirect url is available in allowed origins

Add ability to invite users

Feature Description

Super admins should be able to invite users

Describe the solution you'd like

Describe alternatives you've considered

Additional context

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.