Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Hackathon Starter | 34,033 | 3 months ago | 7 | December 09, 2020 | 26 | mit | JavaScript | |||
A boilerplate for Node.js web applications | ||||||||||
Google Api Nodejs Client | 10,648 | 8,219 | 1,712 | 2 days ago | 218 | September 21, 2022 | 159 | apache-2.0 | TypeScript | |
Google's officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included. | ||||||||||
Gam | 3,097 | 9 hours ago | 52 | apache-2.0 | Python | |||||
command line management for Google Workspace | ||||||||||
Gcalcli | 2,958 | 5 | 5 months ago | 19 | June 01, 2020 | 183 | mit | Python | ||
Google Calendar Command Line Interface | ||||||||||
Wordpress Android | 2,793 | 8 hours ago | 899 | gpl-2.0 | Kotlin | |||||
WordPress for Android | ||||||||||
Google Signin | 2,725 | 296 | 19 | 2 days ago | 53 | November 18, 2019 | 21 | mit | Java | |
Google Sign-in for your React Native applications | ||||||||||
Login With | 2,293 | 2 years ago | 9 | August 08, 2018 | 35 | mit | JavaScript | |||
Stateless login-with microservice for OAuth | ||||||||||
Gcsf | 2,203 | 2 years ago | 21 | April 12, 2020 | 32 | mit | Rust | |||
a FUSE file system based on Google Drive | ||||||||||
Youtube Upload | 1,728 | a year ago | 87 | Python | ||||||
Upload videos to Youtube from the command line | ||||||||||
Macassistant | 1,592 | 3 months ago | 32 | mit | Swift | |||||
Google Assistant for macOS! |
EngineAuth is a standardized approach to third party authentication / authorization, designed to be as simple as possible, both for the developer and the end user.
Warning
EngineAuth is in the very early stages of development and the api is likely to change frequently and in non-backwards compatible ways. Please provide any issues, suggestions, or general feedback through the Issue Tracker, or in the comments section of this documentation.
EngineAuth Example - Example site
Note
If you are unable to view the above image. Please log into your Google Docs account, or log out of Google altogether. There's currently a Google Docs bug that requires a user to be sign in to Google Docs to view public content.
New strategies will be written as needed. If there's a particular strategy that your interested in please create a new issues using the strategy request label.
If the provider that you need isn't provided not to worry, adding additional providers is simple, and in many cases only requires a few lines of code.
Copy the engineauth
directory and the contents of lib
directory to your project's root
directory.
In your appengine_config.py
add:
def webapp_add_wsgi_middleware(app): from engineauth import middleware return middleware.AuthMiddleware(app) engineauth = { 'secret_key': 'CHANGE_TO_A_SECRET_KEY', 'user_model': 'engineauth.models.User', } engineauth['provider.auth'] = { 'user_model': 'engineauth.models.User', 'session_backend': 'datastore', } # Facebook Authentication engineauth['provider.facebook'] = { 'client_id': 'CHANGE_TO_FACEBOOK_APP_ID', 'client_secret': 'CHANGE_TO_FACEBOOK_CLIENT_SECRET', 'scope': 'email', } # Google Plus Authentication engineauth['provider.google'] = { 'client_id': 'CHANGE_TO_GOOGLE_CLIENT_ID', 'client_secret': 'CHANGE_TO_GOOGLE_CLIENT_SECRET', 'api_key': 'CHANGE_TO_GOOGLE_API_KEY', 'scope': 'https://www.googleapis.com/auth/plus.me', } # Twitter Authentication engineauth['provider.twitter'] = { 'client_id': 'CHAGNE_TO_TWITTER_CONSUMER_KEY', 'client_secret': 'CHAGNE_TO_TWITTER_CONSUMER_SECRET', }
Select how your app integrates with Facebook
click Website
. In the Site URL:
field enter your domain E.g. http://example.com/ or http://localhost:8080/ be sure to include the closing /
.App ID/API Key
as client_id
App Secret
as client_secret
Note
Zuckerberg won't allow you to specify multiple callback domains for a single application. So for development you must create a separate application. Then, in your appengine_config.py
you can specify which config will be loaded at runtime.
import os ON_DEV = os.environ.get('SERVER_SOFTWARE', '').startswith('Dev') if ON_DEV: # Facebook settings for Development FACEBOOK_APP_KEY = 'DEVELOPMENT_APP_KEY' FACEBOOK_APP_SECRET = 'DEVELOPMENT_APP_SECRET' else: # Facebook settings for Production FACEBOOK_APP_KEY = 'PRODUCTION_APP_KEY' FACEBOOK_APP_SECRET = 'PRODUCTION_APP_SECRET' engineauth['provider.facebook'] = { 'client_id': FACEBOOK_APP_KEY, 'client_secret': FACEBOOK_APP_SECRET, 'scope': 'email', }
API Access
Create an OAuth 2.0 client ID..
Web application
Your site or host
select (more options)
Authorized Redirect URIs
add your domain name followed by /auth/google/callback
E.g. http://localhost:8080/auth/google/callback
, http://YOUR_DOMAIN.COM/auth/google/callback
Create client ID
Client ID
as client_id
Client secret
as client_secret
http://YOUR_DOMAIN.COM/auth/twitter/callback
. It's fine to set this to your production url, EngineAuth passes a redirect url while authenticating so there's no need to specify localhost:8080
here.Consumer key
as client_id
Consumer secret
as client_secret
OAuth Redirect URL:
blank.Add Application
API Key
as client_id
Secret Key
as client_secret
Done
Callback URL
enter ``http://YOUR_DOMAIN.COM/auth/github/callback`Create Application
Client ID
as client_id
Secret
as client_secret
Done
Application Settings
(Experimental Federated Login)
from the Authentication Options
drop downWhen beginning any new web application, that involves users, you've probably asked yourself:
Which brings us to:
Note
Objective #1
Provide a clear path for Authentication / Authorization, that is secure, simple to use, and allows users to share their information, effortlessly.
And from a development standpoint you've probably ask:
Which brings us to:
Note
Objective #2
The solution should be easy to implement, and easy to extend and share.
EngineAuth brings together ideas and code from many projects:
Provider
Strategies
comes from OmniAuth
EngineAuth is licensed under the Apache License 2.0.