Javascript 检查来自bookmarklet的身份验证

Javascript 检查来自bookmarklet的身份验证,javascript,authentication,web,firebase,bookmarklet,Javascript,Authentication,Web,Firebase,Bookmarklet,“我的web应用”有一个类似于的bookmarklet功能,即当您访问任何网页时,如果您单击该bookmarklet,它会将该网页保存到您的帐户以供以后查看 同样与Pocket类似,您必须登录才能使用它,否则它将不知道保存到哪个帐户,并提示您登录 我已经设置了我的web应用程序,当你访问我的域时,它会知道你是登录还是注销,但我的bookmarklet的问题是它无法从我的web应用程序的域访问身份验证数据,因此bookmarklet认为它没有登录 我需要做什么才能让bookmarklet知道用户是

“我的web应用”有一个类似于的bookmarklet功能,即当您访问任何网页时,如果您单击该bookmarklet,它会将该网页保存到您的帐户以供以后查看

同样与Pocket类似,您必须登录才能使用它,否则它将不知道保存到哪个帐户,并提示您登录

我已经设置了我的web应用程序,当你访问我的域时,它会知道你是登录还是注销,但我的bookmarklet的问题是它无法从我的web应用程序的域访问身份验证数据,因此bookmarklet认为它没有登录


我需要做什么才能让bookmarklet知道用户是否已登录

您的bookmarklet可以向您的服务器发出ajax请求,如下所示(您必须允许服务器上的跨源请求发回数据,请参阅)。重要的是将
with credentials
设置为
true
,以便将用户的会话发送到服务器,并且服务器可以验证用户的身份验证状态。请注意,下面的代码使用jQuery。有关如何在没有jQuery的情况下实现这一点的更多详细信息,我强烈建议:


我不明白。我要用正确的URL调用AJAX调用,然后呢?如果用户已通过您站点的身份验证,会话cookie将发送到服务器并用于验证用户。如果用户未通过身份验证,则不会发送会话cookie,您可以在响应中告诉用户他们未通过身份验证。这有意义吗?在我的服务器端,我如何识别会话cookie?就像他们从网站与服务器交互时一样。基本上,除了您可能需要启用cors之外,服务器端没有什么不同。要在php中启用cors,请执行checkout
$.ajax({
    url: your_url,
    xhrFields: {
        withCredentials: true
    }
});