dailycred 0.1.22 → 0.1.23
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +2 -65
- data/Rakefile +10 -0
- data/dailycred.gemspec +1 -1
- data/lib/dailycred.rb +11 -8
- data/lib/middleware/middleware.rb +2 -2
- data/lib/omniauth/strategies/dailycred.rb +8 -3
- data/spec/support/dailycred_spec.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -1,67 +1,8 @@
|
|
1
1
|
# Dailycred
|
2
2
|
|
3
|
-
##
|
3
|
+
## Rails gem for instant authentication using Dailycred with Ruby on Rails
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
And then execute:
|
8
|
-
|
9
|
-
$ bundle
|
10
|
-
|
11
|
-
Or install it yourself as:
|
12
|
-
|
13
|
-
$ gem install omniauth-dailycred
|
14
|
-
|
15
|
-
## Usage
|
16
|
-
|
17
|
-
bash
|
18
|
-
|
19
|
-
rails g dailycred YOUR_CLIENT_ID YOUR_SECRET_KEY
|
20
|
-
rake db:migrate
|
21
|
-
|
22
|
-
This will generate everything you need to get going with authentication, including a user model, session controller, omniauth initializer, javascript tracking code, and many helper variables. You will You can locate your API keys at [dailycred](https://www.dailycred.com/admin/settings/keys)
|
23
|
-
|
24
|
-
##### Authentication
|
25
|
-
|
26
|
-
Use the `:authenticate` helper to require a user to be signed in:
|
27
|
-
|
28
|
-
before_filter :authenticate
|
29
|
-
|
30
|
-
The current user object can be located with `current_user`:
|
31
|
-
|
32
|
-
# in posts_controller
|
33
|
-
|
34
|
-
@posts = currrent_user.posts.all
|
35
|
-
|
36
|
-
##### Using only with Omniauth
|
37
|
-
|
38
|
-
If you already have omniauth set up and only want to use Dailycred as another OAuth provider, just add this line to your omniauth initializer file
|
39
|
-
|
40
|
-
provider :dailycred, 'CLIENT_ID', 'SECRET_KEY'
|
41
|
-
|
42
|
-
##### Events
|
43
|
-
|
44
|
-
To fire an event to be logged in Dailycred:
|
45
|
-
|
46
|
-
#in your controller
|
47
|
-
|
48
|
-
before_filter :dailycred
|
49
|
-
|
50
|
-
def create
|
51
|
-
...
|
52
|
-
|
53
|
-
# after successfully saving the model:
|
54
|
-
@dailycred.event(current_user.uid, 'Created Post', @post.name)
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
## SSL Error
|
59
|
-
|
60
|
-
You may get an error such as the following:
|
61
|
-
|
62
|
-
Faraday::Error::ConnectionFailed (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
|
63
|
-
|
64
|
-
If that is the case, consider following fixes explained [here](https://github.com/technoweenie/faraday/wiki/Setting-up-SSL-certificates) or [here](http://martinottenwaelter.fr/2010/12/ruby19-and-the-ssl-error).
|
5
|
+
### Check out the documenation at [dailycred.com]("https://www.dailycred.com/docs/ruby")
|
65
6
|
|
66
7
|
## Contributing
|
67
8
|
|
@@ -70,7 +11,3 @@ If that is the case, consider following fixes explained [here](https://github.co
|
|
70
11
|
3. Commit your changes (`git commit -am 'Added some feature'`)
|
71
12
|
4. Push to the branch (`git push origin my-new-feature`)
|
72
13
|
5. Create new Pull Request
|
73
|
-
|
74
|
-
omniauth-dailycred
|
75
|
-
|
76
|
-
OmniAuth adapter for dailycred using their OAuth2 Strategy
|
data/Rakefile
CHANGED
@@ -10,3 +10,13 @@ RSpec::Core::RakeTask.new do |t|
|
|
10
10
|
t.pattern = "./spec/**/*_spec.rb" # don't need this, it's default.
|
11
11
|
# Put spec opts in a file named .rspec in root
|
12
12
|
end
|
13
|
+
|
14
|
+
begin
|
15
|
+
require 'rocco/tasks'
|
16
|
+
require 'fileutils'
|
17
|
+
Rocco::make 'docs/'
|
18
|
+
FileUtils.cp_r "docs/lib/", "/Users/hank/rails/dailycred/public/docs/ruby/"
|
19
|
+
rescue LoadError
|
20
|
+
warn "#$! -- rocco tasks not loaded."
|
21
|
+
task :rocco
|
22
|
+
end
|
data/dailycred.gemspec
CHANGED
data/lib/dailycred.rb
CHANGED
@@ -14,9 +14,10 @@ class Dailycred
|
|
14
14
|
}
|
15
15
|
|
16
16
|
# Initializes a dailycred object
|
17
|
-
#
|
18
|
-
# @param [String]
|
19
|
-
# @param [
|
17
|
+
#
|
18
|
+
# - @param [String] client\_id the client's daiycred client id
|
19
|
+
# - @param [String] secret\_key the clients secret key
|
20
|
+
# - @param [Hash] opts a hash of options
|
20
21
|
def initialize(client_id, secret_key="", opts={})
|
21
22
|
@client_id = client_id
|
22
23
|
@secret_key = secret_key
|
@@ -26,9 +27,10 @@ class Dailycred
|
|
26
27
|
end
|
27
28
|
|
28
29
|
# Generates a Dailycred event
|
29
|
-
#
|
30
|
-
# @param [String]
|
31
|
-
# @param [String]
|
30
|
+
#
|
31
|
+
# - @param [String] user_id the user's dailycred user id
|
32
|
+
# - @param [String] key the name of the event type
|
33
|
+
# - @param [String] val the value of the event (optional)
|
32
34
|
def event(user_id, key, val="")
|
33
35
|
opts = {
|
34
36
|
:key => key,
|
@@ -39,8 +41,9 @@ class Dailycred
|
|
39
41
|
end
|
40
42
|
|
41
43
|
# Tag a user in dailycred
|
42
|
-
#
|
43
|
-
# @param [String]
|
44
|
+
#
|
45
|
+
# - @param [String] user_id the user's dailycred user id
|
46
|
+
# - @param [String] tag the desired tag to add
|
44
47
|
def tag(user_id, tag)
|
45
48
|
opts = {
|
46
49
|
:user_id => user_id,
|
@@ -53,13 +53,13 @@ class Dailycred
|
|
53
53
|
document.body.appendChild(dc);
|
54
54
|
}).call(this);
|
55
55
|
</script>
|
56
|
-
|
56
|
+
<!--<script src="#{@opts[:url]}/public/js/dailycred.coffee"></script>
|
57
57
|
<script>
|
58
58
|
DC.init({
|
59
59
|
"showModal" : #{@opts[:modal]},
|
60
60
|
"triggers" : #{@opts[:triggers].to_s}
|
61
61
|
});
|
62
|
-
</script
|
62
|
+
</script>-->
|
63
63
|
<!-- end dailycred -->
|
64
64
|
EOT
|
65
65
|
end
|
@@ -4,17 +4,22 @@ require 'net/https'
|
|
4
4
|
require 'json'
|
5
5
|
require 'pp'
|
6
6
|
|
7
|
+
# #The Dailycred Omniauth Strategy
|
7
8
|
module OmniAuth
|
8
9
|
module Strategies
|
9
10
|
class Dailycred < OmniAuth::Strategies::OAuth2
|
10
11
|
|
12
|
+
# default options
|
11
13
|
option :client_options, {
|
12
14
|
:site => "https://www.dailycred.com",
|
13
15
|
:authorize_url => '/oauth/authorize',
|
14
16
|
:token_url => '/oauth/access_token'
|
15
17
|
}
|
16
18
|
|
19
|
+
# parameters to expect and return from dailycred responses
|
17
20
|
ATTRIBUTES = ["email", "username", "created", "verified", "admin", "referred_by", "tags", "referred"]
|
21
|
+
|
22
|
+
# allows parameters to be passed through
|
18
23
|
AUTH_PARAMS = ["action"]
|
19
24
|
|
20
25
|
option :authorize_options, OmniAuth::Strategies::Dailycred::AUTH_PARAMS
|
@@ -34,6 +39,7 @@ module OmniAuth
|
|
34
39
|
end
|
35
40
|
end
|
36
41
|
|
42
|
+
# this step allows auth_params to be added to the url
|
37
43
|
def request_phase
|
38
44
|
OmniAuth::Strategies::Dailycred::AUTH_PARAMS.each do |param|
|
39
45
|
val = session['omniauth.params'][param]
|
@@ -47,11 +53,10 @@ module OmniAuth
|
|
47
53
|
|
48
54
|
private
|
49
55
|
|
56
|
+
# This is the phase where the gem calls me.json, which returns information about the user
|
50
57
|
def user
|
51
58
|
return @duser if !@duser.nil?
|
52
|
-
connection = Faraday::Connection.new options.client_options[:site], :ssl
|
53
|
-
:ca_file => "/opt/local/share/curl/curl-ca-bundle.crt"
|
54
|
-
}
|
59
|
+
connection = Faraday::Connection.new options.client_options[:site], options.client_options[:ssl]
|
55
60
|
response = connection.get("/graph/me.json?access_token=#{access_token.token}")
|
56
61
|
json = JSON.parse(response.body)
|
57
62
|
pp json
|
@@ -11,7 +11,7 @@ describe Dailycred do
|
|
11
11
|
secret = "6925d89e-d04d-469e-8fc9-3782af57bc29-c2340f1e-25a0-40af-b638-7429947a6cd7"
|
12
12
|
@user_id = "0c19c355-2a71-4c8e-805e-f7a6087ea84c"
|
13
13
|
|
14
|
-
#dev settings
|
14
|
+
# dev settings
|
15
15
|
# site = "http://localhost:9000"
|
16
16
|
# client_id = "4337ed55-aaca-4e38-8824-6c016c59dd5b"
|
17
17
|
# secret = "34f2ecc3-f955-4292-9747-39b876d91d8b-a4f7ad8e-f8a4-4573-b23d-686f6e28a820"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dailycred
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.23
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: omniauth
|