Metadata-Version: 1.0
Name: Flask-OlinAuth
Version: 1.0
Summary: A simple Flask extension implementing Olin's authentication
Home-page: https://github.com/wcdolphin/flask-olinauth
Author: Cory Dolphin
Author-email: wcdolphin@gmail.com
License: MIT
Description: Flask-OlinAuth

        ==============

        

        Flask-OlinAuth implements OlinApps auth. It automatically provides a

        ``/login`` and ``/logout`` route to the application, handling the

        process of actually authenticating a user with olinapps. Currently the

        plugin is inflexible and would not work if you override one of the

        routes. It also does not use cryptographically secure cookies, which it

        'should'.

        

        At a high level, Flask-OlinAuth provides two useful pieces for your

        application, both of which are demonstrated in ``example.py``.

        

        ``@auth_required``

        ------------------

        

        A simple function decorator which ensures that a user is logged in

        before a view is shown. The user is redirected to the login portal, with

        correct arguments, if not.

        

        ``current_user``

        ----------------

        

        A nice local proxy for all of your views to get the current user,

        formatted as a dictionary.

        

        Flask-OlinAuth is very heavily inspired by Flask-Login, with structure,

        and functionality adopted, and much knowledge gained.

        

        Installation

        ------------

        

        Install the extension with one of the following commands:

        

        ::

        

            $ easy_install flask-olinauth

        

        or alternatively if you have pip installed (which you should):

        

        ::

        

            $ pip install flask-olinauth

        

        Example Usage

        -------------

        

        ::

        

            from flask import Flask, url_for

            from flask.ext.olinauth import OlinAuth, auth_required, current_user

            app = Flask(__name__)

        

            SECRET_KEY = "yeah, not actually a secret"

            DEBUG = True

        

            app.config.from_object(__name__)

        

            oa = OlinAuth(app, 'localhost:5000')

            #initial OlinAuth, with callback host of localhost:5000, for local server

            oa.init_app(app, 'localhost:5000')

        

        

            @app.route("/")

            def index():

                if current_user:

                    responseString = "Awesome index, guess what? %s is logged in. Sweet, right?" % current_user['id']

                else:

                    responseString = "<html>It is kind of lonely here... No users are logged in. <a href=%s>Checkout my secret</a> </html>" % url_for('secret')

                return responseString

        

        

            @app.route("/secret")

            @auth_required

            def secret():

                return "I wouldn't normally show you this, but since %s is logged in, here is the secret: 42" % current_user['id']

        

        

            if __name__ == "__main__":

                app.run(debug=True)

        
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
