设置 Javascript API accessToken

发布于 2024-12-29 06:47:51 字数 517 浏览 0 评论 0原文

我正在开发一个 Facebook 应用程序。我有一个服务器端 OAuth 流程,它允许我对用户进行身份验证,而无需他单击任何按钮。因此,我检索他的 accessToken 以及其他信息,并在生成页面之前在服务器端使用这些信息。

在我的应用程序中,我现在需要使用 Javascript API,它在技术上可以共享相同 Oauth 令牌。

是否可以使用给定的 Oauth 令牌实例化 FB javascript 对象?

我知道可以在客户端执行 Oauth 过程并通过 cookie 与服务器端共享 Oauth 密钥,但我认为这有两个缺点: _ 首先,它意味着有这个“登录”按钮,这对我来说对于 Facebook 应用程序来说并不是一个好的用户体验。 _ 另外,如果我的应用程序由两个不同的页面组成,我不明白这个 Oauth 进程应该如何表现。从一个页面转到另一个页面会完全重新加载 JavaScript。这个 Oauth 过程(带有弹出窗口等)会在每个页面重新加载时完成吗?

感谢您的帮助 !

I am developing a Facebook app. I have a server side OAuth flow which allows me to authenticate a user without requiring him to click on any button. I hence retrieve his accessToken as long as other information and use those ones on the server side before to generate the page.

In my application, I now need to use the Javascript API which could technically share the same Oauth token.

Is it possible to instantiate the FB javascript Object with a given Oauth token ?

I know it is possible to do the contrary meaning doing the Oauth process on the client side and share the Oauth key with the server side via the cookie but this has two many drawbacks in my opinion :
_ First, it implies to have this "login" button which is to me not a good user experience for a facebook app.
_ Also, I don't get how this Oauth process is supposed to behave if my application is composed of two different pages. Going from one page to another reloads entirely the javascript. Will this Oauth process (with the popup and so forth) be done on each page reloading ?

Thanks for your help !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

世俗缘 2025-01-05 06:47:51

我曾经遇到过类似的问题,Facebook 有一个名为 FB.getLoginStatus 的旧方法,您可以使用它来检查用户是否已授予权限而无需弹出窗口 -

FB.init({appId: 'XXXXXXXXXXXXXX', xfbml: true, cookie: true, oauth: true});
FB.getLoginStatus(function(response) {

  if (response.authResponse) {
    token = response.authResponse.accessToken;
    FB.api('/me', function(response) {
        console.log(response);
         // do something here they are logged in and have given you perms   
    });
  } else {
    // no user session available, someone you dont know
  }
});

希望有帮助!

I had a similar problem once, Facebook has an older method called FB.getLoginStatus which you can use to check if the user has given permission without a popup -

FB.init({appId: 'XXXXXXXXXXXXXX', xfbml: true, cookie: true, oauth: true});
FB.getLoginStatus(function(response) {

  if (response.authResponse) {
    token = response.authResponse.accessToken;
    FB.api('/me', function(response) {
        console.log(response);
         // do something here they are logged in and have given you perms   
    });
  } else {
    // no user session available, someone you dont know
  }
});

hope that helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文