gpt4 book ai didi

authentication - 将 Azure ACS 颁发的 token 传递给 PhoneGap 客户端

转载 作者:行者123 更新时间:2023-12-03 06:03:43 26 4
gpt4 key购买 nike

我有一个 Web API 和 MVC 组合应用程序,该应用程序使用 Azure ACS、Windows 身份和被动重定向进行保护。这效果很好。现在,我使用 PhoneGap 添加一个移动应用程序,该应用程序调用现有应用程序的 API。我无法弄清楚如何在移动客户端上实现身份验证。我已经大部分工作正常,但由于 ACS 中的返回 URL 设置,我无法将 token 发送给客户端。场景是:

  • 移动客户端向 API 发送 get 请求
  • 如果用户未经授权,API 会响应 401
  • 客户端重定向到 ACS 登录页面并进行用户身份验证
  • token 被发送到返回 URL,即在网络服务器上运行的应用程序

例如,如果我在 localhost:63327 上运行客户端应用程序,则 token 将发送到 localhost:58392,因为这是 ACS 配置中设置的返回 URL。

如何将 token 发送到我的移动客户端?

最佳答案

我发现人们并没有真正理解你的问题。

这个解决方案可能有效。

简单来说,就是添加一个新的协议(protocol)来从服务器获取身份验证 token 到应用程序客户端。

  1. PG 应用程序调用 Web 方法来注册对 Auth 的请求:

    POST BeginGethAuthTokenid = 取货指南pswd = 取货密码

    BeginGetAuthToken 可以是登录页面中的 Web 方法。

    服务器将取件guid与取件密码关联起来

  2. PG 应用通过使用 InAppBroser 打开登录页面来启动身份验证流程

    mywebapp.com/AppLogin.aspx?id={提货guid}

    取件 GUID 设置为您的 Web 应用程序域的 Cookie。

  3. 用户使用InAppBrowser完成身份验证。

  4. 身份验证成功后,AppLogin.aspx 会将拾取 GUID 与身份验证 token 相关联,并要求用户关闭浏览器以返回应用

  5. PG 应用程序通过提供提取密码来提取身份验证 token 。

请注意,为了安全起见,服务器需要添加拾取 guid 的过期策略,以便一次只有一个应用程序可以使用 guid,并在发生冲突时重新启动进程。

关于authentication - 将 Azure ACS 颁发的 token 传递给 PhoneGap 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20078549/

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