相关疑难解决方法(0)

Firebase Auth JS / PHP

我受命为基于Firebase的Android应用程序构建Web界面。我有一些与数据库交互的端点(云函数)。要访问这些端点,我需要使用电子邮件和密码[1]对用户进行身份验证,检索accessToken [2]并授权使用Authorization: Bearer {accessToken}标头对端点的每个请求进行授权。

我使用php并竭尽全力想如何在我的应用程序中管理经过身份验证的用户。

TL; DR请仅在php中查看我的最终解决方案。/sf/answers/3648372031/

我通过ajax在php会话中传输accessToken,以将cURL请求签名到端点。显然,除了使用firebase JS auth之外,别无其他方法(据我所知[4])。

我的问题是:将其保存accessToken在php会话中并通过ajax POST请求将其与每个页面加载进行比较是否足够(请参见下面的代码)?什么是在php中处理该问题的更可靠策略?

编辑: 一位用户指出,使用带有JWT令牌的经典php会话没有多大意义,我阅读了有关该主题的文章。那么关于Firebase-这是要考虑的事情吗? https://firebase.google.com/docs/auth/admin/manage-cookies

Firebase Auth为依赖会话cookie的传统网站提供服务器端会话cookie管理。与客户端短暂的ID令牌相比,此解决方案具有多个优点,客户端短暂的ID令牌可能每次需要使用重定向机制来在到期时更新会话cookie:

这是我得到的:

1.登录页面

如Firebase示例中所述[3]

function initApp() {

  firebase.auth().onAuthStateChanged(function (user) {
    if (user) {
      // User is signed in.

      // obtain token, getIdToken(false) = no forced refresh
      firebase.auth().currentUser.getIdToken(false).then(function (idToken) {

        // Send token to your backend via HTTPS
        $.ajax({
          type: 'POST',
          url: '/auth/check',
          data: {'token': idToken},
          complete: function(data){
            // data = {'target' => '/redirect/to/route'}
            if(getProperty(data, 'responseJSON.target', false)){
              window.location.replace(getProperty(data, …
Run Code Online (Sandbox Code Playgroud)

php ajax firebase firebase-authentication

4
推荐指数
1
解决办法
1843
查看次数

标签 统计

ajax ×1

firebase ×1

firebase-authentication ×1

php ×1