Update: On March 3, 2020 Airbnb sunset the Airbnb Apple TV app.
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
.
- 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.