背景介绍:UWP 应用可以使用 AccountsSettingsPane 调用系统 UI 实现授权登录功能,相比跳转到网页可以获得更流通的体验。
起
动手写代码之前,看文档的介绍非常美好。只需要处理 WebAccountProvider 和 WebTokenRequest 对象就能完成授权登录,简直可以说是少有的清晰明了的文档。文档中还提供了 WebAccountManagement Sample,列举了多种授权用法。
承
真的动手开始接入的时间,问题接踵而至。使用官方文档提供的代码和 WebAccountManagement Sample 中的代码都不能乐成获取授权。
文档中获取授权的核心逻辑分两段,首先在 AccountsSettingsPane 中配置微软账户的 WebAccountProvider ,然后创建 WebTokenRequest 通过 WebAccountProvider 请求 Token。
官方文档中的 GetMsaTokenAsync 方法是创建 WebTokenRequest 的方法,内容如下:- private async void GetMsaTokenAsync(WebAccountProviderCommand command)
- {
- WebTokenRequest request = new WebTokenRequest(command.WebAccountProvider, "wl.basic");
- WebTokenRequestResult result = await WebAuthenticationCoreManager.RequestTokenAsync(request);
- }
复制代码 执行后 result.ProviderError 值为 WebTokenRequestStatus.ProviderError ,result.ResponseError.ErrorMessage 内提示 0x80070057 参数错误。
雷同的, WebAccountManagement Sample 中给出的代码为 RequestTokenAndSaveAccount 。
此时报错信息变成了 0x80860003 应用程序请求身份验证令牌被禁用或者配置错误。
可以留意到二者的区别其实只有 clientId 参数不同。
转
通过多多多多多多方查阅资料,发现微软的授权体系不停在变,改名部立大功。而许多汗青文档和问答都被微软删掉了,砍刀部立大功。
好久以前的 Live SDK 完全找不到文档了,相关的设置因为微软商店开辟者后台变来变去也早已经废弃了,Live SDK 设置似乎在 Application Registration Portal 页面,可以找到一个隐藏的 check box,打勾之后没办法保存配置。这个页面有一个应用程序 ID ,传到上面的 api 里结果依旧失败。
而 Application Registration Portal 也已经废弃了,微软推荐使用 Microsoft AAD Registered Apps 。随后就是浪费几个小时研究 Microsoft AAD Registered Apps 怎么和开辟者后台绑定到一起,最后得出的结论是压根就绑不到一起
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |