避免在申请中要求许可

时间:2013-12-23 19:26:51

标签: android authentication

在我的应用程序中,我使用范围: oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile

登录时,应用程序会要求用户“知道您在Google上的身份”。我讨厌这种行为,我更讨厌那个文本。我会立即卸载会让我“知道我是谁”的应用程序。我想要实现的只是拥有一个经过身份验证的用户,这样他就可以在服务器上调用方法(使用端点)。我甚至不想知道他的电子邮件,但谷歌也未能提供这样的功能:more here。 无论如何,有没有办法通过在android-manifest中定义一些权限来摆脱这个问题?我添加了越来越多的权限,但它没有帮助。目前我有:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />    
<uses-permission android:name="android.permission.NETWORK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCOUNT_MANAGER"/> 

谷歌仍然要求在应用程序中获得许可。任何人都知道如何使用oauth2对用户进行身份验证,而不是在我的应用程序中通过谷歌强制弹出窗口请求权限?

1 个答案:

答案 0 :(得分:0)

@ M.Sameer:我问他们,因为我需要知道我在和谁打交道...但我想我会采取不同的解决方案。

我不需要任何登录,并为新用户提供唯一ID和随机密码,在共享首选项中设置并在每个请求中发送它,并对我的终端进行“未经验证的呼叫”。

Google提供的针对Android + App Engine身份验证的解决方案非常不可接受。验证用户身份并获取其唯一用户ID非常麻烦......而且只能使用Google帐户!与Facebook和其他提供商整合的难度要大得多。

它要求清单中的gazillion权限,在与用户交互时要求更多权限......而我想知道的是识别用户的数字。现在我将删除: GET_ACCOUNTS,USE_CREDENTIALS,READ_PROFILE,AUTHENTICATE_ACCOUNTS,ACCOUNT_MANAGER,删除所有愚蠢的“我想知道你是谁在Google上”并大大改善游戏的用户体验,因为他不必输入任何愚蠢的数据,只需即时播放,如果他我希望他能改变他的密码或记住我给他的密码,并从不同的设备登录。

[UPDATE]

我实际上已成功进行此身份验证。询问“知道你是谁”的问题出现了,因为在其他磁盘上安装新系统并从旧磁盘启动eclipse之后,它使用了存储在新磁盘上的新调试密钥,而且我没有很好地处理它。修好之后,主要问题就消失了。我仍然需要“GET_ACCOUNTS”和“USE_CREDENTIALS”来对用户进行唯一身份验证,我对此感到非常不满,但我想这对它无能为力。