自动管理用户的Google应用引擎应用

时间:2014-09-16 14:15:06

标签: node.js google-app-engine authentication oauth-2.0 google-api

我正在创建一项服务,该服务将管理用户的Google应用引擎应用。

用它最简单的形式。我正在尝试执行以下功能

  1. 向用户显示oauth2.0登录按钮。
  2. 用户点击该按钮。该请求将被重定向到谷歌进行oauth身份验证。用户将根据Google Apps域帐户进行身份验证。

    例如:用户拥有qaleader@mycompany.com google apps域帐户。

  3. 用户登录帐户。到目前为止一切正常。

  4. 我正在使用带有以下配置的passport-google-auth策略。

      passport.use(new GoogleStrategy({
          clientID: config.google.clientID,
          clientSecret: config.google.clientSecret,
          callbackURL: config.google.callbackURL
        },
        function(accessToken, refreshToken, profile, done) {
          return done(null, profile);
        }
      ));
    

    客户端ID和客户端密钥是我的客户端ID和我正在构建的服务的秘密。

    路线配置如下

      // Setting the google oauth routes
      router.route('/auth/google')
        .get(passport.authenticate('google', {
          failureRedirect: '/',
          accessType: 'offline',
          approvalPrompt: 'force',
          scope: [
            'profile',
            'email',
            'https://www.googleapis.com/auth/appengine.admin'
          ]
        }));
    

    在护照验证回调中,我收到用户个人资料以及访问令牌和刷新令牌。

    身份验证流程正常。验证后,用户被重定向到主屏幕。在那里,我提供了一个更新应用引擎应用的按钮。 在按钮上单击我正在运行此命令

    appcfg.py --oauth2_refresh_token=<token> update <path-of-application-to-update>
    
    
    <token> Is the refreshToken I received in passport verify callback
    <path-of-application-to-update> Is the local path of application to update.
    

    运行此命令后,我在stdout中收到以下错误

    2014-09-16 19:17:24,355 ERROR client.py:440 Failed to retrieve access token: {
      "error" : "unauthorized_client"
    }
    

    在我的Google应用管理控制台中,我创建了一个虚拟应用程序。在身份验证类型下,我选择了Google Apps Domain,我输入的域名为mycompany.com

    使用子进程spawn从node.js运行该命令。

    使用node.js构建完整的服务。

0 个答案:

没有答案