首页 > 解决方案 > Firebase Auth:如何使用 Laravel 在重定向页面中获取用户电话号码/当前用户?

问题描述

我不知道我想做的事情有多大可能,或者是否有更好的方法。我已经在我的系统中集成了firebase电话号码身份验证,它工作正常,但我希望它只是用于验证用户的电话号码,之后它将用户重定向到主注册页面,用户将在其中输入将保存的其他详细信息我的数据库。我正在使用在 div 中呈现 Ui 的 firebaseUi

<h1>Welcome to My Awesome App</h1>
<div id="firebaseui-auth-container"></div>
<div id="loader"></div>

我如何让经过验证的号码/当前用户显示在重定向页面上。我已经从管理用户文档中尝试过

var user = firebase.auth().currentUser;

if (user) {
  // User is signed in.
} else {
  // No user is signed in.
}

并在我的重定向页面中获取它,我在我的控制器中有这个

$this['authUser'] = Request::get('user');

然后在树枝中我有 {{ authUser }}但是当我拨号和转储时它返回null

标签: phplaravelfirebasefirebase-authentication

解决方案


那么这解决了它

将此添加到 js 代码中

<script type="text/javascript">

      initApp = function() {
        firebase.auth().onAuthStateChanged(function(user) {
          if (user) {
            // User is signed in.
            var displayName = user.displayName;
            var email = user.email;
            var emailVerified = user.emailVerified;
            var photoURL = user.photoURL;
            var uid = user.uid;
            var phoneNumber = user.phoneNumber;
            var providerData = user.providerData;
            user.getIdToken().then(function(accessToken) {
              document.getElementById('sign-in-status').textContent = 'Signed in';
              document.getElementById('sign-in').textContent = 'Sign out';

              document.getElementById('account-details').textContent = JSON.stringify({
                displayName: displayName,
                email: email,
                emailVerified: emailVerified,
                phoneNumber: phoneNumber,
                photoURL: photoURL,
                uid: uid,
                accessToken: accessToken,
                providerData: providerData
              }, null, '  ');
            });
          } else {
            // User is signed out.
            document.getElementById('sign-in-status').textContent = 'Signed out';
            document.getElementById('sign-in').textContent = 'Sign in';
            document.getElementById('account-details').textContent = 'null';
          }
        }, function(error) {
          console.log(error);
        });
      };

      window.addEventListener('load', function() {
        initApp();
      });

    </script>

然后在页面上

<div  id="sign-in-status"></div>
    <div  id="sign-in"></div>
    <pre  id="account-details"></pre>

推荐阅读