【问题标题】:AccountManager account chooser intentAccountManager 帐户选择器意图
【发布时间】:2013-10-16 19:50:15
【问题描述】:

我想使用他的 Google 帐户对我的应用用户进行身份验证,因为这是在多个设备上对用户进行身份验证的最简单方法。

我的问题是,如果我使用AccountPicker.newChooseAccountIntent 意图并且用户选择了一个帐户,我会得到它的电子邮件地址作为onActivityResult 的结果,这是否已经通过 Android 以某种方式验证,以确保用户必须输入正确的帐户密码?

由此我想问一下,是否有可能获得用户无权使用的电子邮件地址。我是否需要进一步检查电子邮件地址以验证它是否属于用户?

我的应用是关于用户的短信的,所以我不想让黑客通过选择他们没有密码的帐户来访问这些信息。

【问题讨论】:

    标签: java android authentication authorization google-authentication


    【解决方案1】:

    正在运行的应用可以访问其权限允许的设备上的所有服务和功能。

    accountmanager 返回的帐户将在手机设置中列出,并且在您检索此列表时不会执行额外的安全检查。

    根据您要使用的服务,可能会指示您输入密码。例如,如果您通过 OAuth 链接到特定服务,那么您可能需要输入帐户密码。这实际上取决于您访问的服务。

    例如,任何可以访问手机的人都可以打开 SMS 应用程序,其方式与从您自己的应用程序完全相同。虽然 SMS 是 SIM 卡的一项功能,但它并不倾向于与特定帐户绑定。

    【讨论】:

    • 我没有将 Google 帐户用于任何 Google 服务。它仅用于通过我的服务器对用户进行身份验证。这样我就不需要自己进行任何形式的注册。我想要的是一种使用他的 Google 帐户对用户进行身份验证的安全方法。用户登录后,我只需要该帐户的电子邮件地址。
    • 身份验证已在此Google Developers page 上完成。我仍然不确定它是否安全,因为在同一页面上他们也在谈论所有其他事情。它们与身份验证过程有关吗?
    【解决方案2】:

    我的问题是,如果我使用 AccountPicker.newChooseAccountIntent 意图 并且用户选择一个帐户,我会得到它的电子邮件地址 结果是onActivityResult,这是否已经由Android验证 方式,确保用户必须输入正确的 账号密码?

    是的,当然这意味着该帐户已被设置,即用户在某些时候输入了正确的用户名和密码。

    借此我想问一下,是否有可能获得一个电子邮件地址 用户没有任何权利。我需要做一些进一步的检查吗 要验证的电子邮件地址是否属于用户?

    不,该电子邮件地址已在该设备上设置(通过输入正确的密码),您无需进一步验证。用户是否仍然可以登录该帐户(如果密码已更改),这是未知的。

    我的应用是关于用户的短信,所以我不想允许 黑客通过选择他们没有的帐户来访问这些 密码。

    如果有人设法闯入您用户的 Google 帐户,那是另一回事,您无法保护您的用户免受此类事情的侵害,他们应该使用安全密码等来保护自己。如果您的用户丢失了他/她的手机,或者它被盗了,他/她可能会更改他们的 Google 密码,但该帐户将在他们丢失/被盗的手机上保持设置;新用户将无法登录 GMail,但可以访问您的应用。

    我想使用他的 Google 帐户验证我应用的用户,因为 这是对多个用户进行身份验证的最简单方法 设备。

    我不会声称这是最简单的方法。首先,Android 用户可能没有 Google 帐户,他没有义务拥有一个。其次,您的应用似乎要访问互联网,以便拥有一个集中的用户数据库。您确定您的网络应用程序足够安全,以至于黑客不会仅使用 Google 帐户的用户名对其进行身份验证吗?如果您想为您的用户提供您的服务的网络界面,那么当然只有 Google 用户名是不够的。

    这是对您问题的正确答案,但我不太确定它是否能解决您的问题。

    顺便说一句,问题中提到的所有内容,并且在此答案中不称为身份验证。你什么都没做,你只是想避免它。

    【讨论】:

    • 那么当程序员使用 GoogleAuthUtil 获取令牌时,它只是为了访问 Google 服务(例如 Drive)而不是检查帐户?
    • “查账”是什么意思?通常,当某些应用程序想要访问某些服务时,例如读取用户的 GMail 时,会进行身份验证。该应用程序要求允许使用该服务,并且用户会看到一个屏幕“你想允许应用程序 X 阅读你的谷歌邮件吗?”如果用户按下是,那么应用程序 X 会被授予一个令牌,它稍后会使用它来向 GMail 进行身份验证。使用令牌是为了不向应用程序 X 提供帐户密码(除其他外)。但是在您的解决方案中没有提到令牌。你不检索,也不使用一个。
    • 嘿@MikkoP 赏金怎么了?你没有接受任何答案,这是为什么呢?
    • 尽管您的回答中有很多文字,但我没有找到任何对官方网站或任何内容的引用,这可以验证您刚才所说的内容。
    • @MikkoP 这只是一个借口,您从未要求提供任何参考资料。如果引用是问题,那么您应该奖励 Kuffs 赏金,因为他为您提供了您需要的所有适当链接,但您回答说“我仍然不确定它是否安全,因为在同一页面上他们还说其他各种东西,是不是跟认证过程有关系?”是的,它们与身份验证过程有关,您不想进行身份验证。您希望在尝试避免记录方法的情况下获得官方文档?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2011-07-28
    • 1970-01-01
    • 2017-05-16
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多