如何检查用户是不是在客户端使用 Firebase 登录? [关闭]
Posted
技术标签:
【中文标题】如何检查用户是不是在客户端使用 Firebase 登录? [关闭]【英文标题】:How to check wether the user is logged in with Firebase on the Client Side? [closed]如何检查用户是否在客户端使用 Firebase 登录? [关闭] 【发布时间】:2017-03-06 08:59:59 【问题描述】:编辑:
感谢您的帮助!您帮我查明了问题并向我展示了我正在寻找的解决方案:Accessing Express.js local variables in client side javascript
代码:
index.ejs
$('.UpvoteButton').click(function ()
if (authdata == null)
return res.redirect('/users/login');
else
var $this = $(this);
var $other = $('.DownvoteButton');
if ($this.hasClass("on"))
$this.removeClass("on");
else if (!$this.hasClass('on') && $other.hasClass("on"))
$this.addClass('on');
$other.removeClass("on");
else
$this.addClass('on');
);
app.js
//Global vars
app.use(function(req, res, next)
res.locals.authdata = firebase.auth().currentUser;
next();
);
问题:
当我点击时,什么也没有发生。在我没有 if-else 语句和 redirect 语句之前它可以工作。
注意:这是在 EJS 文件中。我正在使用 Node.js。
问题:
我做错了什么?
【问题讨论】:
它永远不会那样工作,你不能在客户端做res.redirect
@adeneo 我也试过了:window.location.href = "/users/login";
正如@Jamiec 所说,提供的示例很难测试和调试;请发布authdata
的值是多少。是否也可以将authdata == null
替换成false
来测试else
语句是否运行?
在JQuery的前端不能直接访问服务器端变量
***.com/questions/10919650/…
【参考方案1】:
如前所述,您正在尝试访问客户端的服务器端变量。看看这个:Accessing EJS variable in Javascript logic。
基本上,您需要在客户端声明变量:
<script>
var authdata = <%= authdata %>
</script>
然后,您可以添加代码。请记住将重定向更改为客户端可识别的内容,即。 window.location.href = "/users/login";
【讨论】:
以上是关于如何检查用户是不是在客户端使用 Firebase 登录? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
当用户在flutter中使用otp方法登录时,如何检查用户详细信息是不是已经存在于firebase中? [复制]
如何检查用户是不是在 Firebase 和 Express/Node.js 中经过身份验证?
如何使用geofire查询检查10公里半径内是不是存在firebase用户