javascript - 手机客户端权限验证cookie跨域问题
迷茫
迷茫 2017-04-10 15:27:05
[JavaScript讨论组]

最近试着做hybird app,遇到的第一件事就是跨域session丢失的问题,不知道手机客户端现在都流行怎么做登陆状态保存?有哪个大牛愿意说说吗?

我遇到这个问题想到的方法是,php验证通过后session设置的session id是存在cookie里面,那我直接在验证通过以后用session_id()(这个函数会返回设置的sessionid)把值打印出来,然后客户端可以直接取到。。。
但是这之后就出问题了,我用

document.cookie = 'PHPSESSID='+返回的sessionid

这样设置的cookie 的作用域是当前域名下的当前路径
设置好后可以在chrome里看到,然后夸域请求页面,发现没有带cookie....

至此我觉得是因为domain设置的不对所欲带不上cookie然后,我在后面加domain path就不会设置成功

document.cookie = 'PHPSESSID='+返回的sessionid +‘;domain=a.com;path=’test/

这样做了后刷新页面后发现不能设置cookie了(可能是chrome出于安全考虑吧)。

我确定服务器端是设置好的,就是这里用ajax不能设置cookie,然后网上查了查,说ajax可以自己设置cookie我就照做了

            $http({
                headers:{
                cookie:'PHPSESSID=192fac5eb0b9970dfedbb20773013e91'
            },
                xhrFields: {
                    withCredentials: true
                },
                crossDomain:true,
                method:'get',
                url:server.domain +server.api + '/resumelogin'
            }).success(function(d){
                console.log(d);
            })

chrome控制台打印Refused to set unsafe header "cookie"
这个问题看了下,stackoverflow上有答案不过也含含糊糊的

================================
现在已经没什么想法了,真不知道我这个想法是不是不对?是不是应该换个思路去做这个事呢?怎么保存登陆用户的状态?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号