React-Native 的 Facebook SDK 如何维护登录信息?

How does the Facebook SDK for React-Native maintain login informations?

我将 FBSDK 安装到我的 React-Native 应用程序中。

登录成功,我可以在登录后立即通过图表API获取用户数据,但发生的一切对我来说都是个谜。

它是如何维护登录信息的? 比如,当我重新启动应用程序并想发出图表 API 请求或分享内容时,不显示再次登录对话框?

如果我没记错的话 react-native-fbsdk 通过 AccessToken.getCurrentAccessToken() 在令牌中维护登录信息。它的下落可能是特定于平台的,但不要引用我的话。

假设您在登录时已请求足够的权限,所有后续的 Graph API 请求不应触发任何额外的弹出窗口。这些可以按如下方式制作:

// Create a graph request asking for user information with a callback to handle the response.
const infoRequest = new GraphRequest(
  '/me',
  null,
  this._responseInfoCallback,
);
// Start the graph request.
new GraphRequestManager().addRequest(infoRequest).start();

完整示例位于:https://github.com/facebook/react-native-fbsdk#graph-api

如果您在共享之后,可能需要额外的权限 (publish_actions),这些权限需要事先明确授予。这些可以在第一次登录时被询问,但可能不会通过 Facebook 的批准程序,因为这与 their best practices 仅要求我们需要的权限并在上下文中要求它们的做法相反。

这是 Login Manager 非常方便的地方,因为它允许您在用户使用应用程序时请求额外的权限,但这是以额外的弹出窗口为代价的。