gpt4 book ai didi

android - 应用程序如何在没有服务器的情况下代表用户访问 OAuth 服务(例如 Dropbox)?

转载 作者:行者123 更新时间:2023-11-29 05:38:43 27 4
gpt4 key购买 nike

就 OAuth 访问而言,实现 Dropbox 或 GoogleDrive 或任何客户端(仅作为客户端且无需服务器)的正确/推荐方法是什么?

许多提供商(例如 Dropbox)不允许非 http/https 的 redirect_uri。在手机上,谷歌(和苹果?)似乎不允许除操作系统浏览器之外的 OAuth 请求(为了用户方便),这意味着应用程序捕获授权代码(不涉及服务器)的唯一方法oauth 是通过告诉操作系统它希望拦截诸如“http://localhost:9876/myapplication/”之类的 URI。如果没有需要服务器的复杂/复杂的设置(类似于 this ),则不可能拦截 http URI(操作系统将其重定向到浏览器)。

还有一个问题是必须告诉服务提供商我的应用程序并检索客户端 ID/ secret ,我必须在应用程序中对其进行硬编码。

有一种 OAuth 授权类型,我只需获取用户的用户名和密码并将其直接发送到服务器。这看起来很可疑,而且可能不会受到用户的欢迎。

正确的做法是什么?我是否需要运行服务器/服务才能创建仅作为这些服务的第三方门户的应用程序?

谢谢

最佳答案

一种解决方法(如 @gbazilio 的评论所建议)是通过调用 Web View 内的 oauth 端点来手动实现身份验证。为了使其与谷歌等服务提供商一起工作,谷歌会阻止 WebView 中的 oauth,只需将 oauth 请求中的用户代理 header 设置为某些移动浏览器用户代理,一切都会正常工作。

关于android - 应用程序如何在没有服务器的情况下代表用户访问 OAuth 服务(例如 Dropbox)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56778442/

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