Android的 - 授权

问题描述:

最佳做法,我研究如何autenticate并授权Android应用Android的 - 授权

内用户对于autentication存在的AccountManager,但我不知道如何检查用户是否已登录还是不行。我知道如何设置AccountAuthenticatorActivity和AuthenticatorService,但我不确定它如何与应用程序连接。

我是否应该在每项活动中对每个onCreate调用一次检查以确保用户已登录或服务是否对我有用?

如果我应该做一些定期检查,那么应该调用这种检查的最佳做法是什么?

这取决于你的应用程序,真的。除非你有非常严格的安全要求,例如金融应用程序,*应用程序等,我认为你可以通过一个更简单的方法。例如,用户登录后(不过您选择实现此目的)将值存储在SharedPreferences中以表示用户已通过身份验证。从这里,您可以执行以下操作之一:

  1. 如果您的应用程序要求您验证启动的每个活动/片段,只需检查此SharedPreferences值。您还可以创建一个基本活动,以便您的所有其他活动都可以扩展并在那里进行身份验证检查
  2. 如果您只需要验证一次,请修改清单中的启动器活动以检查此值。如果用户已经验证过,请为您的“家庭”活动创建一个新的Intent,并重定向您的用户并完成()启动器活动。
+0

合作基本autentication后,我保存TRUE到针对该变量的喜好和每一个活动检查...似乎其实这么合乎逻辑,我觉得这个问题很愚蠢,谢谢! – Ragnar

+1

如果您需要在每项活动中进行验证,那就完全没问题。考虑使用一个基本活动类,以便您的所有其他活动可以扩展以合并您的代码。另外,如果您向服务器发出网络请求,您仍然需要在服务器上进行一些身份验证,例如验证HTTP请求中的API密钥等。 – Jon

一如既往,这取决于。你需要保护整个应用程序吗?或某些活动中的某些特定活动或某些片段。看看Mint应用程序。

enter image description here

它要求用户输入口令才能访问应用程序。对于这样的事情,创建一个基本活动,并让你的应用程序中的所有活动继承这一点,然后在基本活动中进行检查。

  • 如果您需要保护只是一些活动,只为这些活动建立一个基地活动 ,做你的安全检查那里。

  • 如果是针对某个活动的某个部分,则必须汇总特定于您的工作流程的某些内容。

只是一个提示,尝试将您的问题分成更小的问题,它使得人们更容易回答。

+0

@乔恩是第一个给我有效andswer但你是正确的和有益的一样,所以谢谢:) – Ragnar