|
|
|
|
@ -46,4 +46,66 @@ console.log(res.data) // my from index page
@@ -46,4 +46,66 @@ console.log(res.data) // my from index page
|
|
|
|
|
#### 判断token是否存在 |
|
|
|
|
|
|
|
|
|
1. 将Code 发送到后端。获取Openid、Sessionkey。 |
|
|
|
|
2. 后端判断是否含有token。没有则进行 |
|
|
|
|
2. 后端判断是否含有token。没有则进行登录 |
|
|
|
|
3. 如果用户是未绑定微信的进行判断绑定 |
|
|
|
|
|
|
|
|
|
#### 判断本地缓存是否存有用户信息 |
|
|
|
|
|
|
|
|
|
没有则进行请求获取。并缓存一定的用户信息再进行登录 |
|
|
|
|
|
|
|
|
|
#### 判断后端数据库是否有用户存在。 |
|
|
|
|
|
|
|
|
|
有则进行登录,无则进行注册或绑定。 |
|
|
|
|
|
|
|
|
|
#### 判断Openid、SessionKey等平台信息 |
|
|
|
|
|
|
|
|
|
是否过期然后继续及时更新, 并提交到后端进行缓存。 |
|
|
|
|
|
|
|
|
|
## 拦截器 |
|
|
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
|
|
背景: |
|
|
|
|
|
|
|
|
|
当用户登录成功后,想进行数据获取,但后端要求前端要携带token和uid.可不知道前端也不知道自己是否有携带。 |
|
|
|
|
|
|
|
|
|
所以就产生要对自己进行发送时的请求进行拦截,随即检查通过后再发送。出去。 |
|
|
|
|
|
|
|
|
|
```JavaScript |
|
|
|
|
var token = wx.getStorgetaync('token') /// 获取本地的token值 |
|
|
|
|
|
|
|
|
|
var exportUrls = [] |
|
|
|
|
/// 上面的部分是用来提取信息的 |
|
|
|
|
function CreateHader(url,type){ |
|
|
|
|
let header={}, |
|
|
|
|
if(type == 'POST_PARAMS'){ |
|
|
|
|
header = { |
|
|
|
|
"content-type":"application/x-www-form-urlencoded" |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
header = { |
|
|
|
|
"content-type":"application/json" |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(exportUrls.indexOf(url) == -1){ |
|
|
|
|
let token = token.match(/authorization=([^;]*)/)[1] /// 提取其中的token值 |
|
|
|
|
header['authorization'] = token |
|
|
|
|
} |
|
|
|
|
return header |
|
|
|
|
} |
|
|
|
|
/// 这里是对头部的格式和内容进行规范化。 |
|
|
|
|
|
|
|
|
|
function requestInterceptor(config){ |
|
|
|
|
return new Promise(resolve,reject){ |
|
|
|
|
if(!config.header.authorization){ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|