【问题标题】:Transferring OAuth authentication from mobile app to webview将 OAuth 身份验证从移动应用程序转移到 webview
【发布时间】:2019-10-31 04:01:17
【问题描述】:

我一直致力于在我的项目 API 中实现 OAuth。作为这个项目的一部分,我们有一个移动应用程序,它通过这个 API 对用户进行身份验证,使用密码授权(这个授权实际上将给定的凭据发送到不实现 OAuth 的上游身份验证服务器 - 所以它是必需的) .

此移动应用程序还具有打开某些预定网站的 web 视图的功能。这个想法是这些网站将能够使用授权码授权代表用户进行授权。

这就是我的问题所在。在授权网站时,我们显然要求用户使用我们的 API 进行身份验证。但是,用户通过应用程序中的密码授权进行身份验证,而不是在 web 视图中。

在应用中完成身份验证后,我们如何将身份验证从应用传输到 API?我的想法是在 API 的域上设置一个包含令牌的 cookie 将是实现这一点的最佳方式?

如果问题不够清楚,请致歉。我正在为如何最好地表达和解释我的问题而苦恼。

【问题讨论】:

    标签: oauth oauth-2.0


    【解决方案1】:

    好问题 - 我过去通过策略模式实现了这一点:

    • 当 webview 托管在浏览器中时(在我的例子中是 SPA),以标准 SPA 方式处理令牌 - 例如在 iframe/全屏登录重定向上更新令牌

    • 当 webview 托管在移动应用中时,通过用户代理检测并回调移动应用以执行刷新令牌或启动新的移动登录等操作

    这很棘手,但很有意义,因为 web / mobile 有非常不同的令牌更新 / 存储 / 登录解决方案

    这是一种实际的现实世界用例,您可以在其中找到几乎为零的在线指导。很高兴回答任何后续问题。

    【讨论】:

    • 在移动应用中托管时,您的意思是通过 JavaScript 向 webview 公开某种本机功能吗?
    • 是 - JavaScript 确定它在 web 视图中运行,然后回调移动应用程序 - 它可以执行诸如使用刷新令牌获取新访问令牌并将其返回给 JavaScript 代码之类的操作
    猜你喜欢
    • 2021-08-26
    • 2022-07-31
    • 2014-07-10
    • 1970-01-01
    • 2014-09-04
    • 2023-04-04
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    相关资源
    最近更新 更多