@@ -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