Giter Site home page Giter Site logo

eyedee.me's Introduction

EyeDee.Me

EyeDee.Me is an example Indentity Provider for the BrowserID protocol. This protocol is used by Mozilla Persona to authenticate users across the web.

EyeDee.Me styles itself like an email provider, but does not actually handle any email. Rather, it exists solely as an example for how services, such as email providers, can provide first-class support for BrowserID.

Setup

EyeDee.Me requires Node.js, npm, a MySQL database, and a webserver acting as a reverse proxy / SSL terminator. Once those are in place:

  1. Clone this repository.

  2. Execute npm install in the root of your clone to get all of the necessary Node libraries.

  3. Generate a signing keypair by launching node and running:

    jwk = require("jwcrypto/jwk");
    keypair = jwk.KeyPair.generate('RS', 128);
    console.log(keypair.publicKey.serialize());
    console.log(keypair.secretKey.serialize());
    
  4. Store the keys somewhere safe.

  5. Create a MySQL user and database:

    $ mysql -uroot -p
    > CREATE USER 'eyedeeme'@'localhost';
    > CREATE DATABASE eyedeeme;
    > GRANT ALL ON eyedeeme.* TO 'eyedeeme'@'localhost';
    > FLUSH PRIVILEGES;
    

Running

You must set four environment variables before EyeDee.Me will function:

  1. PUBLIC_KEY: The public key, as printed by the script above. Default: Ephemeral key, generated at runtime.

  2. PRIVATE_KEY: The secret key, as printed by the script above. Default: Ephemeral key, generated at runtime.

  3. MYSQL_URL: A connection string for your MySQL database, in the form mysql://user:pass@host:port/dbname. Default: mysql://[email protected]:3306/eyedeeme

  4. PORT: A port for EyeDee.Me to listen on. Default: random.

Once those are available, you can run EyeDee.me with ./bin/eyedeeme or npm start.

Because the BrowserID protocol requires SSL on connections to Identity Providers, you must also configure a reverse proxy or SSL teminator to accept HTTPS connections and forward them to a running EyeDee.Me instance, such as the one on the port defined above. Otherwise, your users will not be forwarded to your Identity Provider for authentication when logging in to sites with Persona.

eyedee.me's People

Contributors

benadida avatar callahad avatar fmarier avatar jedp avatar klrmn avatar lloyd avatar mnoorenberghe avatar ozten avatar seanmonstar avatar themgt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eyedee.me's Issues

add information to README

I (and very likely others) would really appreciate crucial information here, including installation steps =)

Thanks!

sqlite3 as alternative to mysql

I would like to run it just for myself for testing, i use postgresql on my server and for such small apps usually just go with sqlite3

Doesn't work with voo.st

I created an account on eyedee.me. I could not use this on voo.st or personashiro.appspot.com -- just kept going back to the login prompt.

Custom MYSQL_URL parsed incorrectly

Eyedee.me parses the MYSQL_URL environment variable with:

var u = url.parse(process.env['MYSQL_URL']);
db_host = u.host;
db_port = u.port || db_port;

This fails, because u.host includes the port, which is redundant. The hostName property does not include the port, and should be used instead.

Point eyedee.me's MX records at Mailinator

Right now:

$ dig +short mx eyedee.me

Lame! Mail is just gonna' bounce!

Soon?

$ dig +short mx eyedee.me
10 mail.mailinator.com.

Awesome! I could check my eyedee.me mail over at Mailinator!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.