graphcool-templates
graphcool-templates copied to clipboard
Create seperate repo for authentication
With all the different authentication implementations, I think it makes sense to move them to a seperate repo.
I'll restructure the functions into different folders in the coming days. My current idea:
.
├── authentication
│  ├── auth0-authentication
│  ├── email-user-management
│  ├── facebook-authentication
│  ├── phone-user-management
│  └── google-authentication
├── emails-and-notifications
│  ├── one-signal
│  ├── sendgrid-email
│  └── slack-bot-notifications
├── file-handling
│  ├── cloudinary-images
│  └── file-proxy
├── miscellaneous
│  ├── generate-slug
│  ├── github-fetch-repo
│  ├── google-geocoding
│  └── tictactoe-gameserver
└── payment
  ├── stripe-coupons
  ├── stripe-create-customer
  └── stripe-create-customer-es6
Sounds great, although I would move authentication to it's own repo, because it's going to grow a lot bigger and you're going to end up with an extra level of folders along the way, because there's:
- Signup/login: signing up/logging in using Auth0, Google, Twitter, Facebook, LinkedIn, Github, Single-Sign-On with Enterprise verification (ADFS), basically any of the hundreds of providers (passport.js alone offers 300 options already)
- Signup verification: email verification, phone number verification, etc.
- Login verification: 2FA (TOTP, Push notification, OTP SMS/call)
- Enhanced security: tracking/auditing login attempts, user lockout, password reset
Also, you might need a folder for 'exposing external APIs', for SE's where there's no real integration with the rest of a project, but just exposing an API through Graphcool (like the Weather API, traffic/directions API examples I put in my FR).
Also, 'payment' might become the more general 'webcommerce', to also fit things like shipping calculators/providers, etc. together with payment providers.
I suppose auth primitives should be available as NPM libs.