gpt4 book ai didi

asp.net-mvc - 处理 OAuth 2.0 身份验证 - 在 ASP.NET MVC 应用程序中获取 token 重定向 token 响应

转载 作者:行者123 更新时间:2023-12-02 19:47:21 24 4
gpt4 key购买 nike

我最近开始摆弄 OneDrive API,它使用 OAuth 2.0 身份验证/授权流程。

OneDrive API OAuth 2.0

我正在尝试遵循Token Flow使用 ASP.NET MVC 应用程序获取访问 token 。

我提出的请求类似于以下内容:

GET https://login.live.com/oauth20_authorize.srf?client_id={client_id}&scope={scope}&response_type=token&redirect_uri={redirect_uri}

用户成功授权后,网络浏览器将重定向到您的重定向 URL,并添加到 URL 中的附加参数。

重定向 URL 类似于以下内容: https://login.live.com/oauth20_authorize.srf#access_token={access_token}&authentication_token={authentication_token}&token_type=bearer&expires_in=3600&scope=onedrive.info%20onedrive.full&user_id={user_id}

注意 #在上述格式的 URL 中。这是根据 OAuth 2.0 协议(protocol)标准的规范。

问题:如果我的 MVC 应用程序有一个要处理的重定向 URL,该应用程序的查询参数部分以 ? 开头然后可以使用 Controller 的操作以及映射查询字符串键/值的正确输入参数非常轻松地处理它。

如何处理 MVC 应用程序中具有以 # 开头的查询字符串部分的 URL并从中获取所有查询字符串键/值?

旁注:在这种情况下,我请求不要建议使用任何第三方 API/库/例程。考虑到我希望以简单明了的方式完成 OAuth 过程。谢谢

最佳答案

您选择的方法( token 流也称为隐式授权流)有意使用 #(片段)。这是出于安全目的,以避免中间人攻击。此链接中的答案提供了有关主题 OAuth2.0 Implicit Grant flow. Why use url hash fragments? 的一些描述

但是,如果您仍然想使用 token 流,则可以使用 window.location.hash 在 JavaScript 中读取客户端的值,然后可能使用 Ajax 提交到服务器来处理这些值。

我建议您使用适用于您在问题中解释的场景的代码流。代码流程可在同一链接 https://github.com/OneDrive/onedrive-api-docs/blob/master/auth/msa_oauth.md#code-flow 上找到。

顺便说一句,上面的链接也有一个#(片段):)

关于asp.net-mvc - 处理 OAuth 2.0 身份验证 - 在 ASP.NET MVC 应用程序中获取 token 重定向 token 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com