Token超时机制,Token刷新怎么做

2018/9/1 posted in  python

参考页面:
http://txjdsk.iteye.com/blog/1861210
https://blog.csdn.net/educast/article/details/69230054
https://www.jb51.net/article/84604.htm
https://blog.csdn.net/WongRu1/article/details/80953314
https://www.cnblogs.com/dong-xu/p/6075705.html

解决方法

oauth的token超时之后,用户登陆的session其实还在,只是调用ajax的时候由于token超时而无法获取相关的数据。

解决方法是:

$.ajaxSetup({
            beforeSend: function (xhr, settings) {
                if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
                    xhr.setRequestHeader("X-CSRFToken", csrftoken);
                }
                xhr.setRequestHeader('Authorization', 'Bearer ' + $.cookie('access_token'));
            },
            error: function (xhr,textStatus,errorThrown){
                if (xhr.status == 401){
                    window.location.href = "/logout/"
                }
            }
        });

网上比较多的方式说是使用dataFilter来绑定,这种方法不是太适合当前模式的OAuth2。由于dataFilter需要ajax返回成功的时候才FIlter他的data数据,但是这种情况下的用户无权限实际上是返回的error。所以需要通过error来进行绑定。

待完成

这里的token超时之后是直接跳转到logout,然后跳转到login待用户登陆。实际上还可以使用token refresh,这种后面可以研究一下怎么做。