检测adaljs-angular4中是否可以使用silentlogin
我正在角色6项目中使用库adal-angular4@3.0.13.
我尝试做以下事情: >如果可以使用office365进行silentlogin(登录而不提示用户输入凭据),则执行silentlogin(使用_adalService.login() 当我通过azure-ad / o365身份验证并且cookie仍然有效时,可以使用silentlogin. 要找出,如果可以使用silentlogin,我尝试了以下内容: try { let token = await this._adal.acquireToken(this._config.clientId).toPromise(); return true; } catch (e) { console.log('acquireToken error',e); return false; } 但它总会回归:
但是当调用_adalService.login()时,它会执行一个silentlogin. 我的问题:
您应该将PlatformBehavior.Auto传递给PlatformParameters参数
AcquireToken ,而不是尝试确定是否可以使用静默登录.
问题是adal.js实际上不支持所需的重载,您不能将此值指定为extraQueryParameter.在那里,我认为你可以使用提示查询参数,但似乎并非如此. 乍一看,似乎你不能这样做.但是您的错误消息提供了线索. 从adal.js源代码中,我可以看到在这种情况下显示的消息: if (!this._user && !(this.config.extraQueryParameter && this.config.extraQueryParameter.indexOf('login_hint') !== -1)) { this.warn('User login is required'); callback('User login is required',null,'login required'); return; } 在this article中,login_hint描述如下:
…当你想要进行静默身份验证时,所有这些都很有意义,但仍然需要说明你要进行身份验证的人. 为了最终回答这个问题,您似乎应该将“login_hint=myemail@example.com”添加到config.extraQueryParameter中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |