我觉得对于初学者容易混淆,其实这里面有2个概念,一个是wx.login(),另一个是session_key。
混淆点在于登录态失效过期和session_key失效过期需要重新获得session_key,这2个东西是什么关系?
调用wx.login()时,微信服务器会返回一个code,这时你是处于登录的状态,开发者拿着code,再发送请求到微信服务器去换取新的session_key;
因为session_key会过期,所以提供了wx.checkSession方法来验证session_key是否过期,那么sesssion_key过期怎么办,重新调用wx.login()方法获得新的code,因为拿到code才能去微信服务器获得新的session_key。
用验证session_key是否过期的方法来表示登录是否过期,然而,只要session_key不过期,无需重新调用wx.login()。
补充:官方说即使session_key没有失效,生新调用wx.login()方法获得新的code,也会造成session_key过期失效。(不对的地方请大神指教:)。。。)