Apple TV Authentication Example
This is an example authentication server for an Apple TV or other device that doesn't lend itself to password entry. Check out https://medium.com/airbnb-engineering/apple-tv-authentication-a156937ea211#.yyj7id33m for details about the workflow implemented here.
Much of the basic Sinatra/Warden implementation is based on Steve Klise's
excellent example: https://github.com/sklise/sinatra-warden-example. The most
interesting things to look at are auth_token.rb
and the :nonce
Warden
strategy in app.rb
.
Demo Instructions
- Make sure you have Redis running locally:
brew install redis; redis-server
- Install gems:
bundle install
- Start the app:
rackup
- Navigate to localhost:9292.
- You'll see the short code displayed as you would on an Apple TV.
- In another browser or private window open localhost:9292/authorize.
- Login as admin/admin.
- Enter the short code in the authorization box and submit it.
- Return to your first window and see that it has been successfully logged in.