【问题标题】:msal+oauth - how to retrieve refresh token from android/fluttermsal+oauth - 如何从 android/flutter 检索刷新令牌
【发布时间】:2020-06-08 15:33:02
【问题描述】:

我们正在开发一个应用程序,该应用程序可以预见多个使用 oauth 登录的 Microsoft 帐户。 我们正在使用这个包

https://pub.dev/packages/msal_mobile#-readme-tab-

封装了官方的微软库

https://github.com/AzureAD/microsoft-authentication-library-for-android

我知道该库不会直接公开刷新令牌,而是在后端刷新它。 但是,由于 Flutter 库不允许多个登录帐户(最终因为用户可能从相关的 Microsoft 帐户在 Internet 上退出,因此也从应用程序中退出他的一个帐户)我们需要交换访问权限使用如下请求的带有刷新令牌的令牌:

POST /common/oauth2/v2.0/token HTTP/1.1 Host: https://login.microsoftonline.com Content-Type: application/x-www-form-urlencoded 
client_id=...
&scope=...    &code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=msauth://...
 &grant_type=authorization_code

但是,在尝试这样做时,我收到一个错误“invalid_grant",描述如下:

> "AADSTS9002313: Invalid request. Request is malformed or invalid...”

虽然提供的 accessToken 似乎是正确的,并且它由 msal/flutter 库正确返回。 我们如何解决这个问题?该应用程序似乎已在 azure 门户上正确设置。如果这是 android 官方 msal 库的限制,您是否有任何提示如何添加该功能?谢谢 (托马斯)

【问题讨论】:

    标签: android flutter oauth msal


    【解决方案1】:

    我对颤振不太了解,但如果我没记错的话,对于 azure oauth,如果您尝试使用令牌端点获取刷新令牌,那么您必须使用该授权代码授权类型请求离线访问的范围.也许试试看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2016-06-01
      • 2020-02-02
      • 2015-07-15
      • 1970-01-01
      • 2020-05-05
      • 2013-05-10
      相关资源
      最近更新 更多