【发布时间】:2018-04-06 05:32:36
【问题描述】:
Cordova 插件:https://github.com/nraboy/ng-cordova-oauth 和 ionic v1
我正在使用 oauthWindowslive 的修改版本。我正在尝试从 Microsoft OAuth2.0 中获取 id_token。由于我使用该服务来获取一些 Outlook 日历数据,因此我使用以下内容:
var browserRef = window.cordova.InAppBrowser.open('https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=' + clientId + "&scope=openid+profile+User.Read" + '&response_type=token&response_mode=fragment' + '&display=touch' + '&redirect_uri=' + redirect_uri, '_blank', 'location=no,clearsessioncache=yes,clearcache=yes');
但如果我为response_type 插入id_token+token,我将无法进行身份验证。即使我尝试使用id_token,我也无法进行身份验证,即使我尝试单独使用它。
【问题讨论】:
-
你的意思是指定token作为响应类型有错误吗?您是否在应用清单中启用了隐式流程?
-
@juunas 当重定向到 Microsoft 帐户页面时,我无法超出帐户登录屏幕,也无法输入密码。是的,在生成客户端 ID 时启用了隐式流。我是否也需要在离子代码中的某个地方这样做?。
-
不行,manifest 设置就够了。太奇怪了,登录界面真的没有报错吗?
-
没有。没有错误。我无法超越登录屏幕。但是如果从字符串中删除 id_token 则没有问题,但没有 id_token。我需要 id_token 来刷新访问令牌。
-
我认为
nonce也是必需的。:-)
标签: cordova ionic-framework oauth-2.0 azure-active-directory ngcordova