使用OAUTH2

时间:2017-04-18 13:39:04

标签: email outlook oauth-2.0 office365 imap

提到https://msdn.microsoft.com/en-us/office/office365/api/use-outlook-rest-api。 我仍然无法理解AD,Outlook和Windows直播。

我从https://login.microsoftonline.com/common/oauth2/v2.0/authorize获得了刷新令牌和访问令牌 https://login.microsoftonline.com/common/oauth2/v2.0/token

和范围

  

openid电子邮件个人资料offline_access   https://outlook.office.com/mail.send   https://outlook.office.com/mail.readwrite

使用访问令牌连接imap时仍然出现错误。

imap.authenticate('XOAUTH2', 'xxxxxxx', access_token)
Net::IMAP::NoResponseError: AUTHENTICATE failed.

3 个答案:

答案 0 :(得分:2)

我终于使它起作用了。 有趣的是,我必须使用范围 { "env": { "browser": true, "es6": true }, "extends": "airbnb", "rules": { "indent": ["error", 4, { "SwitchCase": 1 }], "no-alert": "error", "no-debugger": "error", "no-console": "off", "no-shadow": "off", "no-plusplus": "off", "no-empty-pattern": "off", "no-underscore-dangle": "off", "no-case-declarations": "off", "no-else-return": "off", "padded-blocks": "off", "no-tabs": "off", "default-case": "error", "comma-dangle": "error", "no-nested-ternary": "off", "consistent-return": "off", "no-param-reassign": "off", "no-use-before-define": "off", "brace-style": ["error", "stroustrup", { "allowSingleLine": true }], "import/prefer-default-export": "off", "max-len": ["error", { "code": 120 }], "object-curly-newline": ["error", { "multiline": true, "consistent": true }], "arrow-body-style": "off", "arrow-parens": ["error", "as-needed"], "quotes": ["error", "single"], "prefer-arrow-callback": "off", "no-new-object": "off" }, "settings": { "import/resolver": "webpack" } } ,尽管现在您必须在Azure AD的Graph API部分下注册您的应用,并且建议的范围为module.exports = { parser: '@typescript-eslint/parser', extends: [ 'plugin:react/recommended', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended' ], parserOptions: { ecmaversion: 2018, sourceType: 'module', ecmaFeatures: { jsx: true, }, }, settings: { react: { version: 'detect', }, }, rules: { '@typescript-eslint/no-explicit-any': 'off' } } ,这对我不起作用(身份验证失败) 。 尽管我不确定这是否会在不久的将来改变。

我使用了此处所述的属性:https://javaee.github.io/javamail/OAuth2

https://outlook.office365.com/IMAP.AccessAsUser.All

答案 1 :(得分:1)

对于那些询问有关个人帐户的IMAP的人-Outlook.com
-重新:comment

显然,消费者Outlook.com(也称为live.com)的范围是wl.imap
Scopes and permissions上查看旧的Microsoft文档。

还请看以下示例,其中提到了相同的作用域:
http://afterlogic.com/mailbee-net/docs/OAuth2MicrosoftRegularAccountsInstalledApps.html

顺便说一句,我们遇到了 Clever Components 文章中的旧Microsoft文档:

https://www.clevercomponents.com/articles/article049/

  • 注意:他们声称这是针对Office365的,这可能是有问题的,或者可能是文档方面的错误

具有指向Microsoft文档的链接:

https://msdn.microsoft.com/en-us/windows/desktop/dn440163

在页面末尾列出的相关部分中具有指向Scopes and permissions的链接:

https://msdn.microsoft.com/en-us/windows/desktop/hh243646

聪明的组件文章中,他们使用了两个范围wl.imapwl.offline_access
他们指出:

Microsoft建议将“ wl.offline_access”作用域与“ wl.imap”一起使用。否则,只有当用户登录Live Connect并使用您的应用程序时,该应用程序才能访问该用户的信息。”

因此,如果您的应用程序需要连续访问,则需要包括脱机访问范围。

答案 2 :(得分:0)

请参阅Microsoft在2020年4月30日发布的最新消息。

Announcing OAuth 2.0 support for IMAP, SMTP client protocols in Exchange Online

今天,我们宣布OAuth 2.0 authentication for IMAP, SMTP AUTH protocols可以用于Exchange Online邮箱。