wp_signon之后$current_user仍然为空的解决办法

最近在和国内的团队开发温哥华知道的安卓版本,有个问题困扰了我挺久。今天查出了原因,也学了一点小东西。

由于这是一款新闻资讯应用,开发后端时就借用了WordPress的框架。一来方便小编写文章,二来WordPress出色的模块如标签系统、用户系统、评论系统等,节省不少开发时间。

国内的团队反映用户登录后进行操作时,总是遇到用户未登录或登录过时的错误。使用同样的数据发送请求,我们这边却没有任何问题。

登录使用wp_signon(),var_dump($current_user)时就是已登录用户的详情。国内团队反应$current_user是空。我在使用wp_set_current_user()将登录用户设为$current_user后,问题就解决了。

才怪!哪有那么容易…今天温哥华这边快下班了,国内刚起床的弟兄们试了一下,登录是成功了,但用户进行登录后的操作时依然提示登录过期。

在公司使用Mac机,由于使用Postman未能重现问题,我回家用自己的PC下载了他们使用的Fiddler,终于知道问题所在:应该是cookie的问题。用户登录后,服务器会返回一个wordpress_logged_in_******的cookie,我在手动添加cookie发送新的请求时,问题迎刃而解。和国内团队沟通,才知道他们在客户端并没有保存cookie。

客户端保存cookie信息,每次用户进行登录后相关的操作时,后端可以通过WordPress function wp_set_auth_cookie() 来延长cookie有效期,这样用户也不用一再重复登录了。

同时为iOS和安卓提供后端服务支持,这也让我学了不少东西。iOS下运行正常的接口到安卓时,还得进行部分调整。以后再做类似的事情时也就少走一些弯路了。

 

越长大越孤单,越长大越不安

心中烦闷不已,忽然就想起了这句歌词。半夜睡不着,爬起来写点东西。

我人生的第三个十年在温哥华度过,也结识了不少新朋友,但要让我找一个掏心窝讲烦心事的人,还真找不出来。不是我不把我周遭的朋友当朋友看,而是觉得和大家没有到那种可以和人家叨逼叨吐苦水的地步。以前无话不说的故乡伙伴们,也因分别得太过久远而联系渐少。再加上生活环境的差异太大,能聊得来的话题也越来越少。

人活一辈子,最难的事莫过于认清自己吧?我一直自认是一个有责任心,不管对工作、生活还是对家庭、婚姻都还算愿意付出十分努力的人,但不知为何总觉得压力越来越大,以至于我现在不知应该是要对生活绝望,还是要对自己绝望。这种不安的感觉与日俱增,这难道就是而立之年应该有的状态么?

很怀念自己刚到温哥华时,那段虽然辛苦但很单纯快乐的日子。那时的我住地下室,但依然觉得阳光无比灿烂,每天和室友的集体生活也温馨美好。那时的我喜欢畅想未来,想着自己在温哥华五年、十年以后的生活。现在的我,身处于当时的“未来”,却不知道自己现在是否还如当初所想那样。

越长大越孤单 越长大越不安

也不得不看梦想的翅膀被折断

也不得不收回曾经的话问自己

你纯真的眼睛哪去了

越长大越孤单 越长大越不安

也不得不 打开保护你的降落伞

也突然间 明白未来的路 不平坦

难道说 这改变是 必然