花了两天时间折腾了一下新的微软帐号登录,写了一个用来获取 AccessToken 的脚本,登录流程我已经尽力和官方启动器保持一致了。除了获取 accesstoken 以外什么功能都没有,需要和其他脚本一起使用。
GitHub 地址
(另外吐槽下这代码量暴长,实在让人头秃)
顺便把“需要和其他脚本一起使用”里的“其他脚本”也一起上传了:launcher.py
真·认证代码比启动代码长
不知道微软是出于什么顾虑,总是把各种流程都做得很复杂
难道是传说中为了兼容和绕开各种问题的 workaround 大集合
phoenixlzx 不过这还算是个比较正常的 OAuth2 流程,只能说 OAuth2 基本就是这么复杂。也许有现成的封装好的库可以调用,不过我懒得一个一个试了。
为什么我看到了 selenium?OAuth 的流程不是让用户去点授权然后跳转吗?
百合仙子 跳转目标里带一个?code=${authorization_code}, 要获得这个 code 要么本地启动一个 HTTP server,要么从浏览器里抠出来。我选后者。
?code=${authorization_code}
RecursiveG 直接调用用户的默认浏览器呀,这样依赖又少、用户又不需要再次登录。
百合仙子 我其实尝试了一下这个……但是有个问题: 如果用官方启动器的client_id……它的redirect_uri被限定死为 https://login.live.com/oauth20_desktop.srf 除了手动复制粘贴解析我想不到什么方法能把他从浏览器抠出来 如果是自己申请一个Microsoft Azure App用作登录用是可以自己设定redirect_uri到本地服务器的的但是 …… 这玩意好像要钱的
client_id
redirect_uri
DWCarrot 原来如此,不愧是微软。
DWCarrot 申请一个 Office Developer 订阅,就会给你开一个全局,可以用 Azure 的部分服务,比如应用注册
这是可以用微软登录java版mc嘛?
BlingWang 然后就被取消了资格(
DWCarrot www不会的