有没有适用于Android的生产级OAuth示例?

3
有很多示例可供参考,特别是Twitter的。这个链接似乎是最完整的,所以我一直在研究它:https://github.com/brione/Brion-Learns-OAuth。然而,所有示例基本上都是概念验证代码。它们都有粗糙的边缘,例如当您通过浏览器启动应用程序时会留下一个拆分任务堆栈。通过声明为singleTask并强制浏览器回调到原始任务而不是启动新活动,我已经让我正在使用的应用程序基本按照我的意愿工作了。
<activity android:name=".MainActivity"
              android:label="@string/app_name"
              android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

然而,我想知道是否有更好的方法来处理这个问题,比如弹出一个模态WebView来引导用户完成授权过程?

我假设对于Twitter来说,最好的做法可能是转换为xauth。但是我仍然想知道,一般情况下,是否存在适用于Android的最佳OAuth生产实现的最佳实践?


目前,这是唯一的解决方案。 - lacas
2个回答

1

谢谢指针。不幸的是,我还没有深入研究过Maven,所以无法完全测试它。但很高兴看到另一批采用类似方法并添加了一些我尚未尝试过的技术的代码。谢谢! - mikerowehl

1

有过类似经历,Android的示例几乎总是缺少一些重要细节或者已经不再更新。这就是为什么我几天前写了一篇易于理解的摘要,介绍了我如何在Android上使用OAuth:

http://nilvec.com/implementing-client-side-oauth-on-android/

如果有人感兴趣的话,我也可以发布我实现的OAuth帮助类。

请告诉我,不确定没有清单文件时我是否完全理解了那里发生了什么。每当我尝试做类似的事情时,除非我调整MyActivity的启动设置,否则我会在浏览器活动堆栈上堆叠MyActivity活动。如果有更好的方法,我很愿意尝试一下。 - mikerowehl
如果这是唯一的问题,您可以尝试使用FLAG_ACTIVITY_NO_HISTORY,例如:Intent i = new Intent("android.intent.action.VIEW", Uri.parse(uristring)); i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(i); - ldx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接