-
Notifications
You must be signed in to change notification settings - Fork 113
/
plugin.js
39 lines (35 loc) · 1.28 KB
/
plugin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var mongoose = require('mongoose')
, mongooseTypes = require('mongoose-types')
, _schema = require('./schema')
, everyauth = require('everyauth');
mongooseTypes.loadTypes(mongoose);
var Email = mongoose.SchemaTypes.Email;
module.exports = function facebook (schema, opts) {
schema.add(_schema);
schema.static('createWithFB', function (fbUserMeta, accessToken, expires, callback) {
var params = {
fb: {
id: fbUserMeta.id
, accessToken: accessToken
, expires: expires
, name: {
full: fbUserMeta.name
, first: fbUserMeta.first_name
, last: fbUserMeta.last_name
}
, alias: fbUserMeta.link.match(/^http:\/\/www.facebook\.com\/(.+)/)[1]
, gender: fbUserMeta.gender
, email: fbUserMeta.email
, timezone: fbUserMeta.timezone
, locale: fbUserMeta.locale
, verified: fbUserMeta.verified
, updatedTime: fbUserMeta.updated_time
}
};
// TODO Only do this if password module is enabled
// Currently, this is not a valid way to check for enabled
if (everyauth.password)
params[everyauth.password.loginKey()] = "fb:" + fbUserMeta.id; // Hack because of way mongodb treate unique indexes
this.create(params, callback);
});
};