Skip to content

Commit 40967ce

Browse files
committed
Update to make user profile auto update on authentication
1 parent bbc7e26 commit 40967ce

1 file changed

Lines changed: 24 additions & 9 deletions

File tree

lib/auth.js

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,44 @@ var models = require("./models");
1414

1515
function callback(accessToken, refreshToken, profile, done) {
1616
//logger.info(profile.displayName || profile.username);
17+
var stringifiedProfile = JSON.stringify(profile);
1718
models.User.findOrCreate({
1819
where: {
1920
profileid: profile.id.toString()
2021
},
2122
defaults: {
22-
profile: JSON.stringify(profile),
23+
profile: stringifiedProfile,
2324
accessToken: accessToken,
2425
refreshToken: refreshToken
2526
}
2627
}).spread(function (user, created) {
2728
if (user) {
28-
if (user.accessToken == accessToken) {
29-
if (config.debug)
30-
logger.info('user login: ' + user.id);
31-
return done(null, user);
29+
var needSave = false;
30+
if (user.profile != stringifiedProfile) {
31+
user.profile = stringifiedProfile;
32+
needSave = true;
3233
}
33-
user.accessToken = accessToken;
34-
user.refreshToken = refreshToken;
35-
user.save().then(function () {
34+
if (user.accessToken != accessToken) {
35+
user.accessToken = accessToken;
36+
needSave = true;
37+
38+
}
39+
if (user.refreshToken != refreshToken) {
40+
user.refreshToken = refreshToken;
41+
needSave = true;
42+
43+
}
44+
if (needSave) {
45+
user.save().then(function () {
46+
if (config.debug)
47+
logger.info('user login: ' + user.id);
48+
return done(null, user);
49+
});
50+
} else {
3651
if (config.debug)
3752
logger.info('user login: ' + user.id);
3853
return done(null, user);
39-
})
54+
}
4055
}
4156
}).catch(function (err) {
4257
logger.error('auth callback failed: ' + err);

0 commit comments

Comments
 (0)