我有一个Drupal7站点,我正在构建一个闪亮的应用程序,我想将其集成到我的站点上的页面中。该应用程序将被集成为iframe (将在该Drupal站点的子域上的应用程序)。
我希望只有特定的登录用户才能访问我的应用程序,所以我的想法是这样的。Shiny应用程序从Drupal站点读取cookie,并在Drupal站点的数据库中检查该cookie。
如何在Drupal数据库中检查我获得的cookie?我查看了Drupal数据库,会话表没有包含任何与该cookie相似的内容,这是不是发生了一些哈希操作?我如何通过R访问这些数据?
发布于 2017-09-13 14:27:43
此函数负责创建用户会话cookie:https://api.drupal.org/api/drupal/includes%21session.inc/function/drupal_session_regenerate/7.x
我认为一个更简单的解决方案是在你的drupal中创建一个url来检查用户是否已经登录,然后如果你的应用程序中有cookie,你只需要在请求报头中请求这个带有cookie的url (理论上,我会让你检查它是否works...for测试目的只是发送所有的cookie,而不需要确切地找到需要的cookie)。
drupal只需返回user_is_logged_in()结果:
function mymodule_menu(){
$items=array();
$items['am-i-logged-in'] => array(
'title' => 'Check if user is logged in or not',
'page callback' => '_user_is_logged_in_callback',
);
}
function _user_is_logged_in_callback() {
if(user_is_logged_in()) {
drupal_json_output("ok");
}
else {
drupal_json_output("ko");
}
drupal_exit();
}
然后,您只需使用http请求标头中的cookie向Drupal服务器请求www.yoursitename.com/am-i-logged in。
https://stackoverflow.com/questions/46103918
复制相似问题