【发布时间】:2016-05-08 12:29:27
【问题描述】:
我有一个使用 google-passport-oauth2 进行身份验证的 node.js 服务器。我的服务器端代码与the documentation 中的代码类似:
app.get('/auth/google',
passport.authenticate('google', { scope:
[ 'https://www.googleapis.com/auth/plus.login',
, 'https://www.googleapis.com/auth/plus.profile.emails.read' ] }
));
app.get( '/auth/google/callback',
passport.authenticate( 'google', {
successRedirect: '/auth/google/success',
failureRedirect: '/auth/google/failure'
}));
我认为/auth/google 重定向到 google 的登录,当收到权限时,google 配置文件和令牌被发送到回调 /auth/google/callback。
现在我正在制作一个想要使用此 API 进行身份验证的 android 应用程序。我正在使用directions for integrating Google Sign-In 在谷歌端进行身份验证。现在我的 android 应用程序具有配置文件和令牌,并且想要 verify it with my server。
我尝试过使用passport-google-token 和passport-google-id-token 执行此操作(不确定区别...),但无论出于何种原因它都不起作用。现在我正在寻找其他可能性,例如 node.js 的 Google 客户端 API 库,但它看起来很笨重。然后是 tokeninfo 端点,它涉及额外的请求和更多的延迟。或者我应该看看express-jwt?
突然间,我想知道...我不能将令牌从我的 android 应用程序传递到auth/google/callback 的服务器吗?这会让事情变得简单一些。我认为这一定是一个白日梦,因为我还没有找到任何关于这样做的信息。但是如果可能的话,我应该如何格式化请求中的令牌/配置文件数据以便passport.authenticate() 方法识别它? (JSON、表单数据、标题)
如果这不能完成,我正在为节点提供有据可查的令牌验证库的建议......
【问题讨论】:
-
我仍然遇到一些麻烦,您是否同时使用
passport-google-oauth和passport-google-plus-token在不同的路线上相互结合使用。如果我只使用passport-google-plus-token我如何才能在浏览器中工作(不是 Android 或 iOS 应用程序)。 -
我从未使用过
passport-google-plus-token。
标签: node.js authentication passport.js google-signin