Experimental project

This is a sandbox project, which contains experimental code for developer use only.

At the moment oAuth2 Connect allows you to authenticate with different 3rd party oAuth2 providers and maintains association between drupal uid and provider uid.

It's currently available for Drupal 6 only.

Here is the link which summarizes differences between oAuth1.0 and 2.0

http://blog.apigee.com/detail/oauth_differences/

The module provides an abstraction layer with pluggable components for different oAuth2 providers. Currently it doesn't have an UI and all oAuth2 configuration is done with plugins ( and plugins are just classes extending an abstract class ).

The goal was to allow the plugin to handle the dirty work ( dialog url creation, tokens manipulation, user data retrieval ), because each provider implements the protocol a little differently. Most notably Facebook requires post request to get the access token.

We tested the module with the following oauth2 providers:
- Twitter
- Facebook
- Yammer

The main ideas behind this module were simplicity and extensibility. Before creating this module I evaluated different options including oauth and oauthconnector but at the moment there was no Drupal 6 version with oAuth 2.0 support, only 1.0. There were also many dependencies to consider - oauth, connector, http_client, chaos tools.

You probably could incorporate all of them and create oAuth authentication system, but it seemed like an overkill for me. That's how oAuth2 connect module was born..

Dependencies:

Autoload - http://drupal.org/project/autoload

Installation:

Install the module. The module comes with Facebook, Twitter and Yammer plugins, so go to the plugins subfolder and type in your current client_id and client_secret which you will get after application registration on the provider side.

Enable the block with Authentication options, which are easily themable using the default Drupal theme system.

Roadmap:

- Create access token refresh functionality
- Abstract out plugins location
- Expose access token in a smart way, so other modules could get additional data from external APIs
- Possible integration with connector module, so users could have the UI to manipulate connection (add / remove)
- Provide a solution for sites with closed and confirmation based registrations
- Create D7 version

Project information

  • caution Minimally maintained
    Maintainers monitor issues, but fast responses are not guaranteed.
  • caution Maintenance fixes only
    Considered feature-complete by its maintainers.
  • Created by gansbrest on , updated