README.md in redd-0.7.0 vs README.md in redd-0.7.1
- old
+ new
@@ -9,14 +9,13 @@
---
#### Gemfile
```ruby
-gem "ruby", "~> 0.7.0"
-# if you're feeling adventurous
-# gem "redd", github: "avidw/redd", branch: "oauth2"
+gem "redd", "~> 0.7.0"
+# Optional fast JSON parser.
gem "oj", platforms: :ruby
```
#### Getting Started
```ruby
@@ -34,20 +33,36 @@
# See documentation for more grants.
```
```ruby
# Access
+require "secure_random"
+require "sinatra"
+
+enable :sessions
+
+get "/auth" do
+ state = SecureRandom.urlsafe_base64
+ session[:state] = state
+ redirect w.auth_url(state, %w(identity), :permanent)
+end
+
get "/redirect" do
+ halt 500, "Your state doesn't match!" unless session[:state] == params[:state]
access = w.authorize!(params[:code])
session[:access] = access.to_json
redirect to("/name")
end
get "/name" do
- session_access = Access.from_json(session[:access])
- w.with(session_access) do |client|
- client.refresh_access! if session_access.expired?
- "Your username is #{client.me.name}"
+ if session[:access]
+ session_access = Redd::Access.from_json(session[:access])
+ w.with(session_access) do |client|
+ client.refresh_access! if session_access.expired?
+ "Your username is #{client.me.name}"
+ end
+ else
+ redirect to("/auth")
end
end
```