Libraries and plugins

  • Revision slug: Mozilla/Persona/Libraries_and_plugins
  • Revision title: Libraries and plugins
  • Revision id: 511085
  • Created:
  • Creator: grapto
  • Is current revision? No
  • Comment Added a new link for a module I created for Orchard CMS to support Persona Sign in mechanics. Maybe it should be on a new section with other CMS modules.

Revision Content

Want to use Persona on your website or blog? Implementing Persona from scratch is easy, but the plugins and libraries listed here might get you going faster!

This page lists three types of libraries:

1. Plugins that integrate Persona with existing frameworks and content management systems
2. Utility libraries that are useful when building new plugins or integrating Persona into a site from scratch
3. Everything else related to Persona, including libraries for turning your domain into a Persona Identity Provider

This is a community-maintained list. If you've created a library or plugin, please add it to this page.

This page is currently being revised and some plugins may be out of date. Please review plugins before using them.

Plugins

Clojure

Cold Fusion

Haskell

Java

JavaScript

Node.js

PHP

Python

Ruby

Perl

Erlang

Miscellaneous

Didn't see your language or framework listed? LoginRadius, a hosted authentication widget, offers Persona integration for a wide variety of platforms.

Verification Libraries

Utility Libraries

C

Go

Haskell

.Net

Node.js

PHP

Python

Ur/Web

Everything Else

Perl

Python

Ruby

PHP

Racket

Orchard CMS

Revision Source

<p>Want to use Persona on your website or blog? Implementing Persona from scratch <a href="/en-US/docs/Persona/Quick_Setup" title="/en-US/docs/Persona/Quick_Setup">is easy</a>, but the plugins and libraries listed here might get you going faster!<br />
 <br />
 This page lists three types of libraries:<br />
 <br />
 1. <strong>Plugins</strong> that integrate Persona with existing frameworks and content management systems<br />
 2. <strong>Utility libraries</strong> that are useful when building new plugins or integrating Persona into a site from scratch<br />
 3. <strong>Everything else</strong> related to Persona, including libraries for turning your domain into a Persona Identity Provider<br />
 <br />
 This is a community-maintained list. If you've created a library or plugin, please add it to this page.</p>
<div class="note">
 This page is currently being revised and some plugins may be out of date. Please review plugins before using them.</div>
<h2 id="Plugins">Plugins</h2>
<h3 id="Clojure">Clojure</h3>
<ul>
 <li>Noir: <a href="https://github.com/tmarble/nongrata" title="https://github.com/tmarble/nongrata">https://github.com/tmarble/nongrata</a></li>
 <li>ring / cemerick.friend / cljs: <a href="https://github.com/osbert/persona-kit" title="https://github.com/osbert/persona-kit">https://github.com/osbert/persona-kit</a></li>
</ul>
<h3 id="Cold_Fusion">Cold Fusion</h3>
<ul>
 <li>CFML: <a href="https://github.com/gregmoser/cfpersona" title="https://github.com/gregmoser/cfpersona">https://github.com/gregmoser/cfpersona</a></li>
</ul>
<h3 id="Haskell">Haskell</h3>
<ul>
 <li>Yesod: <a href="https://github.com/yesodweb/authenticate" title="https://github.com/yesodweb/authenticate">https://github.com/yesodweb/authenticate</a></li>
</ul>
<h3 id="Java">Java</h3>
<ul>
 <li>Spring: <a href="https://github.com/webdetails/SpringSecurityBrowserID" title="https://github.com/webdetails/SpringSecurityBrowserID">https://github.com/webdetails/SpringSecurityBrowserID</a></li>
 <li>Lutece: <a href="http://dev.lutece.paris.fr/plugins/module-mylutece-persona/" title="https://dev.lutece.paris.fr/plugins/module-mylutece-persona/">http://dev.lutece.paris.fr/plugins/module-mylutece-persona/</a></li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<ul>
 <li>Mootools: <a href="http://mootools.net/forge/p/browserid" title="http://mootools.net/forge/p/browserid">http://mootools.net/forge/p/browserid</a></li>
 <li>jQuery:&nbsp;<a href="https://github.com/altryne/browserID-jQuery" title="https://github.com/altryne/browserID-jQuery">https://github.com/altryne/browserID-jQuery</a></li>
 <li>Meteor:&nbsp;<a href="https://github.com/vladikoff/meteor-accounts-persona" title="https://github.com/vladikoff/meteor-accounts-persona">https://github.com/vladikoff/meteor-accounts-persona</a></li>
</ul>
<h3 id="Node.js">Node.js</h3>
<ul>
 <li>Express: <a href="https://github.com/jbuck/express-persona" title="https://github.com/jbuck/express-persona">https://github.com/jbuck/express-persona</a></li>
 <li>Express / Jungles: <a href="https://npmjs.org/package/jungles-auth-persona" title="https://npmjs.org/package/jungles-auth-persona">https://npmjs.org/package/jungles-auth-persona</a></li>
 <li>Passport: <a href="https://github.com/jaredhanson/passport-browserid" title="https://github.com/jaredhanson/passport-browserid">https://github.com/jaredhanson/passport-browserid</a></li>
 <li>Express / connect - connect-auth:&nbsp;<a href="https://github.com/ciaranj/connect-auth" title="https://github.com/ciaranj/connect-auth">https://github.com/ciaranj/connect-auth</a></li>
 <li>Persona + LevelDB session storage:&nbsp;<a href="https://github.com/maxogden/doorknob" title="/en-US/docs/">https://github.com/maxogden/doorknob</a></li>
</ul>
<h3 id="PHP">PHP</h3>
<ul>
 <li>CakePHP: <a href="https://github.com/overflow636/ofbid" title="https://github.com/overflow636/ofbid">https://github.com/overflow636/ofbid</a> and <a href="https://github.com/markomarkovic/cakephp-plugin-persona" title="https://github.com/markomarkovic/cakephp-plugin-persona">https://github.com/markomarkovic/cakephp-plugin-persona</a></li>
 <li>DokuWiki: <a href="https://github.com/Rudloff/dokuwiki-browserid" title="https://github.com/Rudloff/dokuwiki-browserid">https://github.com/Rudloff/dokuwiki-browserid</a></li>
 <li>Dotclear: <a href="http://plugins.dotaddict.org/dc2/details/browserID" title="http://plugins.dotaddict.org/dc2/details/browserID">http://plugins.dotaddict.org/dc2/details/browserID</a></li>
 <li>Drupal:&nbsp;<a href="https://drupal.org/project/persona" title="https://drupal.org/project/persona">https://drupal.org/project/persona</a></li>
 <li>Elgg: <a href="http://community.elgg.org/plugins/1154520/1.0/persona" title="/en-US/docs/">http://community.elgg.org/plugins/1154520/1.0/persona</a></li>
 <li>Mediawiki: <a href="http://www.mediawiki.org/wiki/Extension:Persona">http://www.mediawiki.org/wiki/Extension:Persona</a></li>
 <li>Joomla: <a href="http://extensions.joomla.org/extensions/access-a-security/authentication-cloud-based/18567" title="http://extensions.joomla.org/extensions/access-a-security/authentication-cloud-based/18567">http://extensions.joomla.org/extensions/access-a-security/authentication-cloud-based/18567</a></li>
 <li>Midgard MVC: <a href="https://github.com/midgardproject/midgardmvc_core/blob/master/services/authentication/browserid.php" title="https://github.com/midgardproject/midgardmvc_core/blob/master/services/authentication/browserid.php">https://github.com/midgardproject/midgardmvc_core/blob/master/services/authentication/browserid.php</a></li>
 <li>MyBB: <a href="https://github.com/Rudloff/mybb-browserid" title="https://github.com/Rudloff/mybb-browserid">https://github.com/Rudloff/mybb-browserid</a></li>
 <li>SPIP: <a href="http://www.spip-contrib.net/BrowserID" title="http://www.spip-contrib.net/BrowserID">http://www.spip-contrib.net/BrowserID</a></li>
 <li>Symfony2: <a href="https://github.com/Proxiweb/PersonaBundle" title="https://github.com/Proxiweb/PersonaBundle">https://github.com/Proxiweb/PersonaBundle</a>, <a href="https://github.com/bitgrave/BGPersonaBundle" title="https://github.com/bitgrave/BGPersonaBundle">https://github.com/bitgrave/BGPersonaBundle</a>,&nbsp;<a href="https://github.com/ahilles107/PersonaBundle" title="https://github.com/ahilles107/BrowserIDBundle">https://github.com/ahilles107/PersonaBundle</a></li>
 <li>Tiki: <a href="http://dev.tiki.org/Mozilla+Persona" title="http://dev.tiki.org/Mozilla+Persona">http://dev.tiki.org/Mozilla+Persona</a></li>
 <li>WordPress / bbPress 2: <a href="http://wordpress.org/extend/plugins/browserid/" title="http://wordpress.org/extend/plugins/browserid/">http://wordpress.org/extend/plugins/browserid/</a></li>
 <li>Yii framework: <a href="https://github.com/KryDos/persona-yii">https://github.com/KryDos/persona-yii</a></li>
</ul>
<h3 id="Python">Python</h3>
<ul>
 <li>CherryPy: <a href="https://bitbucket.org/jaraco/jaraco.persona">https://bitbucket.org/jaraco/jaraco.persona</a></li>
 <li>Django: <a href="https://github.com/mozilla/django-browserid" title="https://github.com/mozilla/django-browserid">https://github.com/mozilla/django-browserid</a> (see <a href="http://godjango.com/11-browser-id/" title="http://godjango.com/11-browser-id/">screencast</a>)</li>
 <li>Django Social Auth: <a href="https://github.com/omab/django-social-auth/blob/master/social_auth/backends/browserid.py" title="https://github.com/omab/django-social-auth/blob/master/social_auth/backends/browserid.py">https://github.com/omab/django-social-auth/blob/master/social_auth/backends/browserid.py</a></li>
 <li>Django 1.5 and Python 3: <a href="https://github.com/mozillaperu/MozTanta-Persona" title="/en-US/docs/">https://github.com/mozillaperu/MozTanta-Persona</a></li>
 <li>Flask: <a href="http://pypi.python.org/pypi/Flask-BrowserID" title="http://pypi.python.org/pypi/Flask-BrowserID">http://pypi.python.org/pypi/Flask-BrowserID</a></li>
 <li>Google App Engine: <a href="https://github.com/psawaya/BrowserID-GAE" title="https://github.com/psawaya/BrowserID-GAE">https://github.com/psawaya/BrowserID-GAE</a></li>
 <li>Pyramid: <a href="http://www.rfk.id.au/blog/entry/painless-auth-pyramid-browserid/" title="http://www.rfk.id.au/blog/entry/painless-auth-pyramid-browserid/">http://www.rfk.id.au/blog/entry/painless-auth-pyramid-browserid/</a></li>
 <li>Pyramid: <a href="https://github.com/madjar/pyramid_persona/" title="https://github.com/madjar/pyramid_persona/">https://github.com/madjar/pyramid_persona/</a> (see <a href="http://compiletoi.net/quick-authentication-on-pyramid-with-persona.html" title="http://compiletoi.net/quick-authentication-on-pyramid-with-persona.html">blog post</a>)</li>
 <li>Repoze: <a href="https://github.com/mozilla-services/repoze.who.plugins.browserid" title="https://github.com/mozilla-services/repoze.who.plugins.browserid">https://github.com/mozilla-services/repoze.who.plugins.browserid</a></li>
 <li>Tornado: <a href="http://www.peterbe.com/plog/integrate-browserid-in-a-tornado-web-app" title="http://www.peterbe.com/plog/integrate-browserid-in-a-tornado-web-app">http://www.peterbe.com/plog/integrate-browserid-in-a-tornado-web-app</a></li>
 <li>Twisted: <a href="https://github.com/warner/browserid-cred" title="https://github.com/warner/browserid-cred">https://github.com/warner/browserid-cred</a></li>
 <li>web.py: <a href="https://github.com/oscarfroberg/browserid-webpy" title="https://github.com/oscarfroberg/browserid-webpy">https://github.com/oscarfroberg/browserid-webpy</a></li>
 <li>WSGI: <a href="https://github.com/ianb/wsgibrowserid" title="https://github.com/ianb/wsgibrowserid">https://github.com/ianb/wsgibrowserid</a></li>
</ul>
<h3 id="Ruby">Ruby</h3>
<ul>
 <li>Devise: <a href="https://rubygems.org/gems/devise-browserid" title="https://rubygems.org/gems/devise-browserid">https://rubygems.org/gems/devise-browserid</a></li>
 <li>Devise: <a href="https://github.com/denschub/devise_browserid_authenticatable" title="https://github.com/denschub/devise_browserid_authenticatable">https://github.com/denschub/devise_browserid_authenticatable</a></li>
 <li>OmniAuth: <a href="https://github.com/intridea/omniauth-browserid" title="https://github.com/intridea/omniauth-browserid">https://github.com/intridea/omniauth-browserid</a></li>
 <li>Rails: <a href="http://rubygems.org/gems/browserid-rails" title="http://rubygems.org/gems/browserid-rails">http://rubygems.org/gems/browserid-rails</a></li>
 <li>Sinatra: <a href="http://rubygems.org/gems/sinatra-browserid" title="http://rubygems.org/gems/sinatra-browserid">http://rubygems.org/gems/sinatra-browserid</a></li>
 <li>Warden / Rack: <a href="https://rubygems.org/gems/warden-browserid" title="/en-US/en-US/docs/">https://rubygems.org/gems/warden-browserid</a></li>
</ul>
<h3 id="Perl">Perl</h3>
<ul>
 <li>Plack: <a href="https://metacpan.org/release/Plack-Middleware-Auth-BrowserID">https://metacpan.org/release/Plack-Middleware-Auth-BrowserID</a></li>
</ul>
<h3 id="Erlang">Erlang</h3>
<ul>
 <li>CouchDB: <a href="https://github.com/iriscouch/browserid_couchdb" title="https://github.com/iriscouch/browserid_couchdb">https://github.com/iriscouch/browserid_couchdb</a></li>
</ul>
<h3 id="Miscellaneous">Miscellaneous</h3>
<ul>
 <li>Apache: <a href="https://github.com/mozilla/mod_authnz_persona" title="/Link_Type_Article_Title_Lookup_/_Link_Text_Attachments_URL">https://github.com/mozilla/mod_authnz_persona</a></li>
 <li>Cyrus SASL: <a href="https://github.com/ozten/sasl-browserid" title="https://github.com/ozten/sasl-browserid">https://github.com/ozten/sasl-browserid</a></li>
 <li>PhoneGap: <a href="https://github.com/couchbaselabs/cordova-browserid" title="https://github.com/couchbaselabs/cordova-browserid">https://github.com/couchbaselabs/cordova-browserid</a></li>
</ul>
<p>Didn't see your language or framework listed? <a href="http://identity.mozilla.com/post/31008721633/" title="http://identity.mozilla.com/post/31008721633/">LoginRadius</a>, a hosted authentication widget, offers Persona integration for a wide variety of platforms.</p>
<h2 id="Verification_Libraries">Verification Libraries</h2>
<ul>
 <li>Node.js: <a href="https://npmjs.org/package/browserid-verify">https://npmjs.org/package/browserid-verify</a></li>
 <li>PHP: <a href="https://github.com/fmarier/auth-browserid">https://github.com/fmarier/auth-browserid</a></li>
 <li>Ruby: <a href="https://rubygems.org/gems/browserid-verify">https://rubygems.org/gems/browserid-verify</a></li>
 <li>Perl: <a href="http://search.cpan.org/perldoc?Net%3A%3ABrowserID%3A%3AVerify">http://search.cpan.org/perldoc?Net::BrowserID::Verify</a></li>
</ul>
<h2 id="Utility_Libraries">Utility Libraries</h2>
<h3 id="C">C</h3>
<ul>
 <li><a href="https://github.com/PADL/gss_browserid" title="https://github.com/PADL/gss_browserid">https://github.com/PADL/gss_browserid</a> (libbrowserid component)</li>
</ul>
<h3 id="Go">Go</h3>
<ul>
 <li><a href="https://github.com/elathan/gobrowserid" title="https://github.com/elathan/gobrowserid">https://github.com/elathan/gobrowserid</a></li>
</ul>
<h3 id="Haskell">Haskell</h3>
<ul>
 <li><a href="http://hackage.haskell.org/package/authenticate" title="http://hackage.haskell.org/package/authenticate">http://hackage.haskell.org/package/authenticate</a></li>
</ul>
<h3 id=".Net">.Net</h3>
<ul>
 <li><a href="https://github.com/cvrajeesh/NBrowserID" title="https://github.com/cvrajeesh/NBrowserID">https://github.com/cvrajeesh/NBrowserID</a></li>
 <li><a href="http://www.codeguru.com/csharp/.net/net_asp/using-browserid-authentication-in-asp.net-web-sites.htm" title="http://www.codeguru.com/csharp/.net/net_asp/using-browserid-authentication-in-asp.net-web-sites.htm">http://www.codeguru.com/csharp/.net/net_asp/using-browserid-authentication-in-asp.net-web-sites.htm</a></li>
 <li><a href="https://github.com/fernandozamoraj/BrowserIdDemoWithMVC3" title="https://github.com/fernandozamoraj/BrowserIdDemoWithMVC3">https://github.com/fernandozamoraj/BrowserIdDemoWithMVC3</a> (see <a href="http://fernandozamorajimenez.blogspot.com/2012/04/integrating-browserid-with-mvc3.html" title="http://fernandozamorajimenez.blogspot.com/2012/04/integrating-browserid-with-mvc3.html">blog post</a>)</li>
 <li><a href="https://github.com/sergiotapia/ASP.Net-MVC3-Persona-Demo" title="https://github.com/sergiotapia/ASP.Net-MVC3-Persona-Demo">https://github.com/sergiotapia/ASP.Net-MVC3-Persona-Demo</a></li>
</ul>
<h3 id="Node.js">Node.js</h3>
<ul>
 <li><a href="https://github.com/substack/persona-id" title="https://github.com/substack/persona-id">https://github.com/substack/persona-id</a></li>
 <li><a href="https://github.com/lloyd/node-browserid" title="https://github.com/lloyd/node-browserid">https://github.com/lloyd/node-browserid</a></li>
</ul>
<h3 id="PHP">PHP</h3>
<ul>
 <li><a href="https://github.com/Falco20019/php-browseridlib" title="https://github.com/Falco20019/php-browseridlib">https://github.com/Falco20019/php-browseridlib</a></li>
 <li><a href="https://github.com/raymondjavaxx/php5-browserid" title="https://github.com/raymondjavaxx/php5-browserid">https://github.com/raymondjavaxx/php5-browserid</a></li>
</ul>
<h3 id="Python">Python</h3>
<ul>
 <li><a href="https://github.com/mozilla/PyBrowserID" title="https://github.com/mozilla/PyBrowserID">https://github.com/mozilla/PyBrowserID</a></li>
</ul>
<h3 id="Ur.2FWeb">Ur/Web</h3>
<ul>
 <li><a href="https://github.com/doublec/urweb-persona">https://github.com/doublec/urweb-persona</a></li>
</ul>
<h2 id="Everything_Else">Everything Else</h2>
<h3 id="Perl">Perl</h3>
<ul>
 <li>Perl/CGI IdP: <a href="https://github.com/benkard/mulkyid" title="https://github.com/benkard/mulkyid">https://github.com/benkard/mulkyid</a></li>
</ul>
<h3 id="Python">Python</h3>
<ul>
 <li>WSGI IdP: <a href="https://bitbucket.org/djc/persona-totp" title="https://bitbucket.org/djc/persona-totp">https://bitbucket.org/djc/persona-totp</a></li>
</ul>
<h3 id="Ruby">Ruby</h3>
<ul>
 <li>Rack IdP: <a href="https://rubygems.org/gems/browserid-provider" title="https://rubygems.org/gems/browserid-provider">https://rubygems.org/gems/browserid-provider</a> (see <a href="https://rin.no/category/browserid-2/" title="https://rin.no/category/browserid-2/">blog post</a>)</li>
</ul>
<h3 id="PHP">PHP</h3>
<ul>
 <li>Symfony2 IdP: <a href="https://github.com/gigablah/GBPersonaProviderBundle" title="https://github.com/gigablah/persona-provider-bundle">https://github.com/gigablah/GBPersonaProviderBundle</a></li>
</ul>
<h3 id="Racket">Racket</h3>
<ul>
 <li>web-server module:&nbsp;<a href="https://github.com/cosmez/racket-persona">https://github.com/cosmez/racket-persona</a></li>
</ul>
<h3 id="Racket" style="line-height: 20px;">Orchard CMS</h3>
<ul>
 <li>Mozilla persona sign in module:&nbsp;<a href="https://github.com/grapto/Contrib.Persona">https://github.com/grapto/Contrib.Persona</a></li>
</ul>
Revert to this revision