twitter-login 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +32 -37
- data/lib/twitter/login.rb +0 -4
- data/spec/login_spec.rb +2 -1
- metadata +9 -9
data/README.markdown
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Drop-in login functionality for your webapp
|
2
2
|
===========================================
|
3
3
|
|
4
|
-
|
4
|
+
Mount this Rack endpoint in your web application to enable user logins through Twitter.
|
5
5
|
|
6
6
|
|
7
7
|
How to use
|
@@ -12,62 +12,58 @@ the <i>"Yes, use Twitter for login"</i> option. You can put anything as <i>"Call
|
|
12
12
|
URL"</i> since the real callback URL is provided dynamically, anyway. Note down your
|
13
13
|
OAuth consumer key and secret.
|
14
14
|
|
15
|
-
Next, install this library:
|
16
|
-
|
17
|
-
[sudo] gem install twitter-login
|
18
|
-
|
19
15
|
You have to require 'twitter/login' in your app. If you're using Bundler:
|
20
16
|
|
21
17
|
## Gemfile
|
22
|
-
|
23
|
-
source 'http://gemcutter.org'
|
24
|
-
gem 'twitter-login', :require_as => 'twitter/login'
|
25
|
-
|
26
|
-
Now configure your app to use the middleware. This might be different across web
|
27
|
-
frameworks. For Sinatra this would be:
|
18
|
+
gem 'twitter-login', '~> 0.4.1', :require => 'twitter/login'
|
28
19
|
|
29
|
-
|
30
|
-
enable :sessions
|
31
|
-
use Twitter::Login, :consumer_key => 'KEY', :secret => 'SECRET'
|
32
|
-
helpers Twitter::Login::Helpers
|
20
|
+
Now mount the Rack endpoint in your application. In **Rails 3** this would be:
|
33
21
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
22
|
+
## application.rb:
|
23
|
+
config.twitter_login = Twitter::Login.new \
|
24
|
+
:consumer_key => 'CONSUMER_KEY', :secret => 'SECRET'
|
25
|
+
|
26
|
+
|
27
|
+
## routes.rb
|
28
|
+
twitter = YourApp::Application.config.twitter_login
|
29
|
+
twitter_endpoint = twitter.login_handler(:return_to => '/')
|
39
30
|
|
40
|
-
|
41
|
-
# (config.gem only in case you're not using Bundler)
|
42
|
-
config.gem 'twitter-login', :version => '~> 0.2.1', :lib => 'twitter/login'
|
43
|
-
config.middleware.use 'Twitter::Login', :consumer_key => 'KEY', :secret => 'SECRET'
|
31
|
+
mount twitter_endpoint => 'login', :as => :login
|
44
32
|
|
45
|
-
|
33
|
+
|
34
|
+
## application_controller.rb
|
46
35
|
include Twitter::Login::Helpers
|
36
|
+
|
37
|
+
def logged_in?
|
38
|
+
!!session[:twitter_user]
|
39
|
+
end
|
40
|
+
helper_method :logged_in?
|
41
|
+
|
47
42
|
|
48
43
|
Fill in the `:consumer_key`, `:secret` placeholders with real values. You're done.
|
49
44
|
|
45
|
+
It is less trivial to mount a Rack endpoint in **Rails 2** or Sinatra.
|
46
|
+
This library was once Rack *middleware*, and if you prefer to use that, install the 0.3.x
|
47
|
+
version and [check out the "middleware-0.3" branch][middleware].
|
48
|
+
|
50
49
|
|
51
50
|
What it does
|
52
51
|
------------
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
or she is redirected back to "/login" with an OAuth verifier GET parameter. The
|
59
|
-
middleware then identifies the authenticating user, saves this info to session and
|
60
|
-
redirects to the root of your website.
|
53
|
+
The user will first get redirected to Twitter to approve your application. After that he
|
54
|
+
or she is redirected back to your app with an OAuth verifier GET parameter. Then, the
|
55
|
+
authenticating user is identified, this info is saved to session and the user is sent back
|
56
|
+
to the root path of your website.
|
61
57
|
|
62
58
|
|
63
59
|
Configuration
|
64
60
|
-------------
|
65
61
|
|
66
|
-
Available options for `Twitter::Login`
|
62
|
+
Available options for `Twitter::Login` are:
|
67
63
|
|
68
64
|
* `:consumer_key` -- OAuth consumer key *(required)*
|
69
65
|
* `:secret` -- OAuth secret *(required)*
|
70
|
-
* `:
|
66
|
+
* `:site` -- the API endpoint that is used (default: "http://api.twitter.com")
|
71
67
|
* `:return_to` -- where user goes after login (default: "/")
|
72
68
|
|
73
69
|
|
@@ -79,8 +75,7 @@ The `Twitter::Login::Helpers` module (for Sinatra, Rails) adds these methods to
|
|
79
75
|
* `twitter_user` (Hashie::Mash) -- Info about authenticated user. Check this object to
|
80
76
|
know whether there is a currently logged-in user. Access user data like `twitter_user.screen_name`
|
81
77
|
* `twitter_logout` -- Erases info about Twitter login from session, effectively logging-out the Twitter user
|
82
|
-
* `twitter_client` (
|
83
|
-
With it you can query anything on behalf of authenticated user, e.g. `twitter_client.friends_timeline`
|
78
|
+
* `twitter_client` (OAuth::AccessToken) -- A consumer token able to query the API, e.g. `twitter_client.get('/1/path')`
|
84
79
|
|
85
80
|
[register]: http://twitter.com/apps/new
|
86
|
-
[
|
81
|
+
[middleware]: https://github.com/mislav/twitter-login/tree/middleware-0.3#readme
|
data/lib/twitter/login.rb
CHANGED
data/spec/login_spec.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitter-login
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 9
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 3
|
10
|
+
version: 0.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Mislav Marohni\xC4\x87"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-02-17 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -72,7 +72,7 @@ dependencies:
|
|
72
72
|
requirement: &id004 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
hash: 13
|
78
78
|
segments:
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: 1.2.8
|
99
99
|
type: :development
|
100
100
|
version_requirements: *id005
|
101
|
-
description:
|
101
|
+
description:
|
102
102
|
email: mislav.marohnic@gmail.com
|
103
103
|
executables: []
|
104
104
|
|
@@ -140,9 +140,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
requirements: []
|
141
141
|
|
142
142
|
rubyforge_project:
|
143
|
-
rubygems_version: 1.
|
143
|
+
rubygems_version: 1.5.0
|
144
144
|
signing_key:
|
145
145
|
specification_version: 3
|
146
|
-
summary: Rack
|
146
|
+
summary: Rack endpoint to provide login with Twitter functionality
|
147
147
|
test_files: []
|
148
148
|
|