]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/oauth2_token.rb
Make OAuth work again
[rails.git] / app / models / oauth2_token.rb
diff --git a/app/models/oauth2_token.rb b/app/models/oauth2_token.rb
new file mode 100644 (file)
index 0000000..9c28d88
--- /dev/null
@@ -0,0 +1,21 @@
+class Oauth2Token < AccessToken
+  attr_accessor :state
+
+  def as_json(options={})
+    d = {:access_token=>token, :token_type => 'bearer'}
+    d[:expires_in] = expires_in if expires_at
+    d
+  end
+
+  def to_query
+    q = "access_token=#{token}&token_type=bearer"
+    q << "&state=#{URI.escape(state)}" if @state
+    q << "&expires_in=#{expires_in}" if expires_at
+    q << "&scope=#{URI.escape(scope)}" if scope
+    q
+  end
+
+  def expires_in
+    expires_at.to_i - Time.now.to_i
+  end
+end