Skip to content

Commit 2190f68

Browse files
author
elijah
committed
Merge pull request #97 from apinf/feature/github-auth-username
done username fetching when auth with github
2 parents 80d4c8c + 9a303ee commit 2190f68

File tree

4 files changed

+39
-1
lines changed

4 files changed

+39
-1
lines changed

.meteor/packages

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ yogiben:admin
5656
timmyg:wow
5757
tsega:skrollr
5858
accounts-github
59+
bruz:github-api
5960
chart:chart
6061
brylie:api-umbrella
6162
percolate:synced-cron

.meteor/versions

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ blaze@2.1.2
2020
blaze-tools@1.0.3
2121
boilerplate-generator@1.0.3
2222
bootstrap@0.3.1
23+
bruz:github-api@0.2.4_1
24+
brylie:api-umbrella@0.2.4
2325
brylie:api-umbrella@0.2.3
2426
callback-hook@1.0.3
2527
cfs:access-point@0.1.49

client/startup.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Accounts.ui.config({
2+
requestPermissions: {
3+
github: ['user:email']
4+
}
5+
});

server/accounts.coffee

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,15 @@ Accounts.onCreateUser (options, user) ->
1111
user.profile.firstName = user.services.google.given_name
1212
user.profile.lastName = user.services.google.family_name
1313
if user.services?.github
14-
user.emails = [{address: user.services.github.email, verified: true}]
14+
15+
if(user.services.github.email == null or user.services.github.email == "")
16+
user.emails = [{address: "", verified: false}]
17+
else
18+
user.emails = [{address: user.services.github.email, verified: true}]
19+
20+
user.profile.name = user.services.github.username;
21+
22+
1523

1624
if user.services?.facebook?.id
1725
profileImageUrl = 'https://graph.facebook.com/v2.3/' + user.services.facebook.id + '/picture?type=normal'
@@ -64,3 +72,25 @@ Accounts.onCreateUser (options, user) ->
6472
ApiUmbrellaUsers.insert(response.data.user)
6573

6674
user
75+
76+
# This part is still under development since there was an issue in github-accounts package
77+
# TODO: GitHub authentication with user's private email address
78+
Accounts.onLogin (info) ->
79+
user = info.user
80+
if user
81+
github = new GitHub(
82+
version: '3.0.0'
83+
timeout: 5000)
84+
github.authenticate
85+
type: 'oauth'
86+
token: user.services.github.accessToken
87+
try
88+
result = github.user.getEmails(user: user.services.github.username)
89+
email = _(result).findWhere(primary: true)
90+
###Meteor.users.update { _id: user._id }, $set:
91+
'profile.email': email.email
92+
'services.github.email': email.email###
93+
user.emails = [{address: email.email, verified: true}]
94+
console.log user
95+
catch e
96+
console.log e.message

0 commit comments

Comments
 (0)