android – 针对具有Web视图的本机移动应用程序的SSO方法?

前端之家收集整理的这篇文章主要介绍了android – 针对具有Web视图的本机移动应用程序的SSO方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
因此,原生移动应用程序( Android和iOS)的标准SSO方法似乎是通过AppAuth库的OAUth2 OpenID Connect.

这一切都很好 – 实际上似乎接近优雅.

但是,如果同一个应用程序包含需要使用相同SSO访问资源的嵌入式Web视图组件(在与所有资源需要身份验证访问的本机代码相同的Web应用程序中的同一服务器上),该怎么办?

对于初学者来说,OAuth2访问令牌(一旦获得)不会自动传播到Web应用程序中的超链接请求,对吧?那么,网页应用程序页面本身是否必须使用JavaScript重新进行此类传播?移动应用程序可以重写请求来解决此问题,但是:

>至少在Android上这只适用于GET请求(对吗?)
>更重要的是,这假设Web应用程序不需要在普通的浏览器客户端中运行

OAuth2不是正确的方法吗?如果是这样,那似乎是一种耻辱 – 因为AppAuth似乎对本机应用程序方面非常好.它只是将基本的Web视图浏览混合到真正混乱的图片中.

或者只是一些事实上的标准JavaScript库,可以与Angular等混合使用(然后需要使用Angular等)?

解决方法

这里是AppAuth的主要维护者.然而,对于您所描述的内容,还没有标准的方法. IETF的本地应用程序BCP的OAuth2采取了正确方向的步骤(并启发了AppAuth),但未涵盖如何在应用程序和站点之间同步身份验证状态 – 这是留给读者的练习.

如果您的主要关注点是应用程序与用户浏览器中的关联站点之间的一致身份验证状态,则最佳方法通常是通过Android上的自定义选项卡或iOS上的SFSVC / SFAuthenticationSession将身份验证委派给站点.身份验证将由站点管理,一旦完成,身份验证状态可以通过自定义方案或应用程序链接/通用链接共享回应用程序.

在嵌入式WebView方面,相反的情况适用 – 从应用程序中获取webview的网站视角,因为webview的状态在应用程序的状态应该不会持续存在.

我希望有一个更好,更标准化的解决方案,并将努力实现它,但现在定制,每服务解决方案都是实用的.

猜你在找的Android相关文章