create oauth2无效

时间:2017-06-28 02:19:54

标签: node.js meteor oauth-2.0

我正在尝试使用Outlook邮件API在Meteor上构建一个Web应用程序。第一步是通过Outlook邮件API获取用户身份验证,这需要附加本地主机,客户端ID,密码等的自定义URL。

我查看了一些node.js oauth2教程并下载了simple-oauth2。所有教程都使用类似的东西:

 const oauth2 = require('oauth2').create({
  client: {
     id: '<client-ID>',
     secret: '<app-password>',
  },
  auth: {
     tokenHost: 'https://login.microsoftonline.com',
     authorizePath: 'common/oauth2/v2.0/authorize',
     tokenPath: 'common/oauth2/v2.0/token'
  }
});

当我运行它时,控制台记录“未捕获的TypeError:require(...)。create不是一个函数。” create()是否有某些我没有的下载?如果我将它分成两部分,则需要正常工作,所以我知道这是create()的一个问题。

1 个答案:

答案 0 :(得分:0)

首先,如果你列出const,那么只要你知道你做了什么就不要在最后扩展它们。

其次我不使用Outlook API,但我使用OneDrive API,它应该是类似的。您需要按照有关如何获取身份验证代码的文档进行操作。或者在这里,我为OneDrive创建它的指南应该与您的问题相同

https://apps.dev.microsoft.com/添加应用程序,您需要使用microsoft帐户。

输入您的应用程序名称。在这种情况下,请勿使用Guided Setup

创建应用程序密钥并将其复制以保存loaction

添加平台并选择网络。在这种情况下,重定向网址为http://localhost/dashboard

转到下面的图表访问,并选择两个选项Files.ReadWrite.All

确保按保存。

在此网址中输入您的客户端ID,其中xxxxxx为。请注意,客户端ID是您可以在应用程序设置顶部找到的应用程序ID。 https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=xxxxxxxxxx&scope=offline_access%20files.readwrite.all&response_type=code&redirect_uri=http://localhost/dashboard

请将以上网址输入您的浏览器。使用您的Microsoft帐户登录,然后单击“是”以授予您的应用程序访问权限。然后,您将被重定向到http://localhost/dashboard/?code=xxxxxxxxx-xxxxxx-xxxxx-xxx-xxxxx

此验证码可用于将使用此步骤生成的access_token

request.post({url:'https://login.microsoftonline.com/common/oauth2/v2.0/token', form: {
    redirect_uri: 'https://login.live.com/oauth20_desktop.srf',
    client_id: 'xxxxxxxxxxxxxxxxx',
    client_secret: 'xxxxxxxxxxxxxxxx',
    code: 'xxxxxxxxxxxxxxxxxx',
    grant_type: 'authorization_code'
}
}, function(err,httpResponse,body){ /* ... */ 
console.log('err: ' + err)
console.log('body: ' + body)
});

对于每个oAuth2 API,这基本上都是相同的过程。请注意,我在access_token请求中使用redirect_uri http://localhost/dashboard

中的其他API

如果您以及console.log上的请求作为示例,并且您获得了对象对象,那么请使用stringify。希望它可以帮到你