问题标签 [android-authenticator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2087 浏览

android - AppCompat 的 AccountAuthenticatorActivity

我正在按照教程制作身份验证器:http: //blog.udinic.com/2013/04/24/write-your-own-android-authenticator/

登录活动需要扩展AccountAuthenticatorActivity,问题从这里开始:AccountAuthenticatorActivity扩展常规Activity而不是AppCompatActivity

在 AppCompat 中使用正Activity则会导致Activity没有ActionBar. 我想使用AccountAuthenticatorActivityAND 有一个ActionBar.

0 投票
1 回答
211 浏览

android - 如何避免让用户下载单独的 APK 进行帐户管理?

我为我正在开发的两个应用程序创建了一个自定义帐户类型。现在我正在为这两个应用程序寻找一种方法来利用这个单一帐户服务。该文档建议以下内容。

一种解决方案是将服务放在一个小型的专用 APK 中。当应用程序希望使用您的自定义帐户类型时,它可以检查设备以查看您的自定义帐户服务是否可用。如果没有,它可以引导用户到 Google Play 下载服务。乍一看,这似乎很麻烦,但与为使用您的自定义帐户的每个应用程序重新输入凭据的替代方法相比,它非常容易。

但我不想让我的用户下载单独的 APK 只是为了能够登录。还有什么另一种解决方案可以让两个应用程序都具有此功能,而无需单独的 APK 负担?

0 投票
2 回答
58 浏览

android - Android 应用上的用户身份验证

我的公司使用 Office 365 企业版,用户身份验证是使用 Azure 服务完成的。我正在创建一个需要用户身份验证才能使用该应用程序的 Android 应用程序。它要求用户必须使用 Cisco VPN 虚拟连接到我们的公司网络。只有在成功连接到公司域后才能启动应用程序。

我将如何处理身份验证?谢谢。

0 投票
1 回答
70 浏览

android - 使用电子邮件和密码进行 Google 身份验证。

我正在创建一个使用 google drive api 的应用程序,并且需要对 google 帐户进行身份验证。使用驱动器 api for android 的快速入门示例使用 google sign_in,用户需要从手机上已添加的 google 帐户中选择一个帐户。

我不希望用户在那里选择自己的帐户。我想从代码中添加将使用 api 的帐户,以便从我自己指定的帐户而不是应用程序用户的帐户访问文件。但除了用户选择帐户的情况外,我无法找到任何登录或身份验证表单。

请问这个可以吗?如果是这样怎么办?

0 投票
2 回答
730 浏览

android - 如何在 okhttp3 身份验证器中使用异步请求添加刷新令牌进行身份验证

我有一个附加到 Okhttp3 客户端的身份验证器,当 401 响应到来时,该客户端被成功调用。在身份验证器中,我想使用刷新令牌对用户进行身份验证。我正在使用 IBM AppId进行身份验证。

我有以下代码使用刷新令牌进行身份验证:

现在您可以看到它是异步请求,我不能将此代码放入身份验证器中,因为该方法将在调用 onAuthorizationSuccess() 之前返回。此外,AppId 没有我可以使用的同步类型的请求。您能否指出我如何在身份验证器类中使用此代码。请帮我解决这个问题。

0 投票
1 回答
1309 浏览

android - 在 GoogleSignInOptions、requestIdToken 或 requestServerAuthCode 上使用什么来实现授权代码流(又名 OAuth2 Explicit)?

我已经使用 google.android.gms.auth 实现了 Android Google 身份验证。

在 GoogleSignInOptions 的设置中,我一直使用 requestIdToken,了解这实现了 OAuth2 授权代码流。这意味着它应该使用 OAuth2 RFC 中已知的 response_type=code,基于代码,稍后在支持中进行验证。

但是更深入地研究这一点,我刚刚看到还有另一个选项 requestServerAuthCode,并且通过查看它更接近我认为我正在做的事情。

其中哪些实现了 OAuth2 授权代码流?

谢谢!

0 投票
1 回答
229 浏览

android - AbstractAccountAuthenticator 只允许 1 个帐户

我已将 AbstractAccountAuthenticator 实现为使用 SyncAdapter 的要求,但我的应用程序一次仅支持 1 个帐户。

当用户尝试通过设置添加另一个帐户时 - 设置崩溃并出现停止工作的错误。

我见过一些应用程序,例如LinkedIn、Facebook,它们以不同的方式处理它向用户显示吐司消息,并声明只支持一个帐户。我怎样才能实现这个功能?

这是我的验证器

0 投票
0 回答
22 浏览

android - 我请求大量访问令牌而不重用 API 可以吗?

在 Android API 中,access token可以通过refresh token.

即使在新access token发行后,前一个在过期时间(可能是 1 小时)内仍然有效。

我想知道是否可以在access token每次需要时请求新的,无论发行了多少access token,这样我不介意是否access token过期。

通过我的简单测试,看起来还可以。但是,我不确定生产服务是否仍然可以。

access token如果我使用刷新令牌请求大量的任何预期问题?

否则,我应该重复使用access token直到它过期吗?

0 投票
1 回答
122 浏览

android - 如何为自定义身份验证器设置默认首选项?

我已经为我的应用程序创建了我的自定义身份验证器。我现在已经到了允许用户删除他们的帐户的地步,如果他们愿意的话。我知道我在身份验证器 XML 文件中为身份验证器定义了一个设置屏幕:

最后一个属性android:accountPreferences是我定义PreferenceScreenXML 的地方。这就是我遇到麻烦的地方...据我了解,我定义的首选项android:accountPreferences是最终用户在设备设置下单击其帐户时显示的内容。但是,我如何阅读这些偏好?或者为每个偏好处理点击事件?我希望做的就是允许用户直接从操作系统提供的首选项屏幕中删除他们的帐户。

我已经在 SO 上查看了其他潜在的解决方案:

Android:读取身份验证器 xml 中设置的首选项

Android 帐户验证器:在首选项屏幕中区分帐户

无法访问在 Android 的帐户身份验证器中设置的首选项

但是,我可以从这些先前的问题中找到的最佳答案是在 中包含一个<intent>标签<PreferenceScreen>并启动您定义的设置活动。但是,这对我来说没有意义……我查看了我的个人手机,并且我拥有的每个帐户都显示了一个偏好屏幕,该屏幕显示为操作系统原生。我不应该以同样的方式定义我的偏好吗?我看过三星 Galaxy S9 和 Pixel 3,两者的设置屏幕都是原生的。

我怎样才能达到同样的效果?更重要的是,我如何与这些设置进行交互?与往常一样,我们将非常感谢您对此提供的任何帮助!

0 投票
1 回答
210 浏览

android - 互联网不稳定时处理访问令牌到期

我使用 Retrofit2 作为 Android 的 HTTP 客户端。该应用程序使用访问令牌和刷新令牌与后端进行通信。

场景一:access-token 过期,api 调用失败,错误码 401,然后我使用 Authenticator 使用 refresh-token 获取一对新的 access-token 和 refresh-token 并继续使用新的 access-token对于失败的呼叫。这一切都适用于稳定的互联网连接

场景2:现在考虑一下,互联网不稳定,不断掉线。互联网在那里,由于访问令牌过期,api调用失败,应用程序使用刷新令牌进行登录调用以获取一对新的访问令牌和刷新令牌。但在我获得登录成功 200 之前,互联网就掉线了。现在互联网又回来了,我的应用程序开始再次触发 api 调用并获得 401,然后使用刷新令牌触发新的登录调用。这是问题所在,后端已更新了新的访问和刷新令牌,但由于互联网中断,应用程序从未收到它。因此,我拥有的刷新令牌不再有效(因为已经在后端创建了一对新令牌并刷新了旧令牌)

不确定我应该如何处理这种情况?这是我的身份验证器类:

不知道我错过了什么以及我应该如何解决这个问题。