【问题标题】:Preventing Facebook Android SDK from displaying password as plain text防止 Facebook Android SDK 将密码显示为纯文本
【发布时间】:2012-12-31 17:23:53
【问题描述】:

我有一个使用 Facebook Android SDK 的 Android 应用,将公开部署。

我的问题是,每当用户使用错误密码登录时,Facebook SDK 会将密码字段更改为纯文本,这在公共环境中显然是不可接受的。

有没有办法抑制这种行为?

【问题讨论】:

  • 对话框登录工作流程(作为 web 视图)完全由服务器端控制,据我所知,没有客户端标志可以禁用它。
  • @Ron 在 Android 3.2 上对我来说没有这样的问题。我正在使用 Facebook Android SDK 3.0。我想我在 iOS 上遇到了这样的问题,但我没有使用最新版本的 Facebook iOS SDK。
  • 如果 Facebook 希望该字段在发生错误后不被遮蔽,这似乎是 Facebook 的选择,如果它是 Facebook 的字段而不是您的字段。
  • 扩展有问题的类并提供您自己的 Web 视图,该视图添加 Javascript 以将纯文本密码字段更改为隐藏密码,并确保您的被调用。不过,这可能与 tos 相悖。
  • 有没有没有登录按钮的加密密码?

标签: android facebook passwords password-protection facebook-android-sdk


【解决方案1】:

Facebook SDK 登录对话框验证流程由 facebook 的服务器端管理。而且由于我们对登录验证没有任何控制权。

Facebook SDK 提供了一个 LoginButton 视图,它是 Button 的自定义视图实现。您可以在您的应用程序中使用此按钮来实现 Facebook 登录。 LoginButton 类维护会话状态,这允许它根据用户的身份验证状态在按钮中显示正确的文本。将 LoginButton 添加到 Activity 的布局是实现 Facebook 登录的快速方法。

除了登录按钮之外,您可能还想根据用户是否经过身份验证来控制其他用户界面 (UI) 组件。 Facebook SDK 包括两个类:UiLifecycleHelperSession.StatusCallback,用于处理管理会话状态更改的大部分复杂性。显示已验证功能的活动或片段可以创建UiLifecycleHelper 类的实例并传入Session.StatusCallback 侦听器,该侦听器会收到任何会话状态更改的通知。您的活动或片段必须调用UiLifecycleHelper 反映活动或片段生命周期方法的公共方法。这些方法用于创建、打开、保存和恢复活动的 Facebook 会话。 Session.StatusCallback 监听器实现可以覆盖 call() 方法来响应会话状态的变化并相应地更新 UI。

所以LoginButton 控制登录按钮功能,您可以添加自定义代码触发call() 方法来控制其他UI 组件。

【讨论】:

  • 我没有尝试过你的答案,但它确实让我知道了如何解决我的问题。
  • 很高兴它对您有所帮助。谢谢亲爱的:)
  • 有没有没有登录按钮的加密密码?
【解决方案2】:

不,登录对话框是从 Facebook 端呈现的,移动登录对话框在第二次尝试时始终以纯文本形式显示密码 - 重新加载时应该在对话框中显示该效果的注释

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 2017-01-27
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    相关资源
    最近更新 更多