使用授权代码流时 Onedrive 文件选择器无法打开

Onedrive File picker not opening when using authorization code flow

我正在按照 Microsoft onedrive documentation 授权代码流程授予我的用户访问其 onedrive 文件的权限。

我收到了 access_code 并使用 ruby 和 access_code、client_id、clien_secret 发送了一个 POST 请求并收到了 access_token 作为 JSON 响应。

当我尝试将此 access_token,scopes,state,.. 与我的 Redirect_url 一起附加以访问 Onedrive 文件选择器时,window 关闭。以下是那个

的样本URL
 http://MY_REDIRECT_URL/onedrive#access_token=My_access_token&token_type=bearer&expires_in=3600&scope=wl.skydrive%20wl.signin&state=redirect_type%3dauth%26display%3dpage%26request_ts%3d1427963180884%26response_method%3durl%26secure_cookie%3dfalse&user_id=My_USER_ID

当我在授权令牌流程中使用相同的 URL 时,它会正确打开文件选择器。 当我检查 wl_auth cookie 值时,它说

 error=invalid_cookie&error_description=The%20'wl_auth'%20cookie%20has%20been%20modified%20incorrectly.%20Ensure%20that%20the%20redirect%20URI%20only%20modifies%20sub-keys%20for%20values%20received%20from%20the%20OAuth%20endpoint.&status=connected

错误是我们需要使 URL 与使用授权令牌流时将获得的 URL 相同。

此外,在制作 URL 时确保其编码和 response_type 值应该是 URL 而不是 COOKIE