我需要能够监视用户的Hotmail或Outlook帐户在离线模式下通过后端。但是,用户可以注册并授权用户从web应用程序(如Laravel或Lumen )或Cordova移动应用程序或其他SPA接口(如角)访问帐户。基本上,该应用程序是在https://apps.dev.microsoft.com上为隐式流配置的。
由于该应用程序需要后端离线处理,让我们每天进行几次处理--我需要一个刷新令牌来更新access_token。获得Azure广告同意的方法有两种。
问题-选项2对hotmail/outlook.com和O365都有效吗?如果访问和刷新令牌是由客户端生成的,那么它们是否适用于用户帐户和电子邮件的在线和离线访问。
发布于 2018-04-06 08:47:46
你当然可以。但是,如果您希望接收令牌响应中的刷新令牌,则您的应用程序必须请求并被授予offline_acesss scope。
作用域允许您的应用程序代表用户访问资源的时间较长。在“工作帐户同意”页面上,此范围显示为“随时访问您的数据”权限。在个人Microsoft帐户同意页面上,它显示为“随时访问您的信息”权限。当用户批准
offline_access作用域时,应用程序可以从v2.0令牌端点接收刷新令牌。刷新令牌的使用时间很长。当旧的访问令牌过期时,应用程序可以获得新的访问令牌。
请求示例:
//行间隔仅限于易读性
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&state=12345实际上,如果您使用代码授予流在AAD中签名,您将看到以下页面:

如果您单击“是”,您将同意offline_access范围。注意:这对MSA和AAD帐户都适用。。
https://stackoverflow.com/questions/49683772
复制相似问题