Node.JSvalidationGoogle身份validation令牌

我正在尝试使用Express.JS框架构build一个Node.JS REST服务器,该框架集成了用于移动应用程序的Google身份validation。 使用的Node.JS版本是0.12.7。

validation从应用程序接收到的Google令牌时出现问题,因为看起来我尝试加载的模块返回错误。

用于validation此令牌的模块是passport-google-token [1]。 用于初始化此模块并检查令牌的代码如下所示:

index.js文件

'use strict'; import express from 'express'; import passport from 'passport'; import {setTokenCookie} from '../../auth.service'; var router = express.Router(); router .post('/callback', passport.authenticate('google-token'), setTokenCookie); export default router; 

passport.js文件

 import passport from 'passport'; import GoogleTokenStrategy from 'passport-google-token'; export function setup(User, config) { passport.use(new GoogleTokenStrategy({ clientID: config.google.clientID, clientSecret: config.google.clientSecret }, function(accessToken, refreshToken, profile, done) { User.findOne({'google.id': profile.id}).exec() .then(user => { if (user) { console.log(user); return done(null, user); } user = new User({ name: profile.displayName, email: profile.emails[0].value, role: 'user', username: profile.emails[0].value.split('@')[0], provider: 'google', google: profile._json }); console.log(user); user.save() .then(user => done(null, user)) .catch(err => done(err)); }) .catch(err => done(err)); })); } 

当我尝试启动服务器时,我收到以下错误:

 D:\Work\SoftwareUp\softwareup_android_demo\server\server\auth\google\mobile\passport.js:19 _passport2.default.use(new _passportGoogleToken2.default({ ^ TypeError: object is not a function at Object.setup (D:/Work/SoftwareUp/softwareup_android_demo/server/server/auth/google/mobile/passport.js:5:16) at Object.<anonymous> (D:/Work/SoftwareUp/softwareup_android_demo/server/server/auth/index.js:13:37) at Module._compile (module.js:460:26) at loader (D:\Work\SoftwareUp\softwareup_android_demo\server\node_modules\babel-register\lib\node.js:144:5) at Object.require.extensions.(anonymous function) [as .js] (D:\Work\SoftwareUp\softwareup_android_demo\server\node_modules\babel-register\lib\node.js:154:7) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.exports.default (D:/Work/SoftwareUp/softwareup_android_demo/server/server/routes.js:15:20) at Object.<anonymous> (D:/Work/SoftwareUp/softwareup_android_demo/server/server/app.js:27:1) at Module._compile (module.js:460:26) at loader (D:\Work\SoftwareUp\softwareup_android_demo\server\node_modules\babel-register\lib\node.js:144:5) at Object.require.extensions.(anonymous function) [as .js] (D:\Work\SoftwareUp\softwareup_android_demo\server\node_modules\babel-register\lib\node.js:154:7) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (D:\Work\SoftwareUp\softwareup_android_demo\server\server\index.js:12:28) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) Stopping Express server 

从我认为有调用构造函数时有一个问题,但我不知道是什么问题。

你可以帮我吗?

谢谢。

[1] https://www.npmjs.com/package/passport-google-token

尝试改变你的import代码

import GoogleTokenStrategy from 'passport-google-token';

import { Strategy as GoogleTokenStrategy } from 'passport-google-token';