This is a partial port of torando.auth to be used with Flask.
Inspired by Kenneth Reitz.
Example usage for Google Federated Login. Greate for internal apps.
Require an account from a given Google Apps domain for your Flask apps:
from flask import Flask from flask.ext.googleauth import GoogleFederated # Setup Flask app = Flask(__name__) app.secret_key = "random secret key" # Setup Google Federated Auth auth = GoogleFederated(app, "heroku.com") @app.route("/") @auth.required def secret(): # Once user is authenticated, his name and email are accessible as # g.user.name and g.user.email. return "ssssshhhhh (c) kennethreitz"
If you want to authenticate your users with general Google OpenID you should import and use GoogleAuth
instead of GoogleFederated
:
auth = GoogleAuth(app) @app.route("/") @auth.required def secret(): return "You have rights to be here, %s" % g.user.name
To install Flask-GoogleAuth:
pip install flask-googleauth
Be sure that your Google Apps domain is enabled to be an OpenID provider under "Advanced tools" → "Federated Login using OpenID".