vue的微信网页授权

本文详细介绍了Vue中处理微信网页授权的步骤,包括用户访问、判断首次登陆、申请授权地址、回调处理、存储用户信息及使用cookie进行状态管理。同时解释了cookie的工作原理,即通过设置'Set-Cookie'响应头在客户端存储信息,并在后续请求中自动携带。文中给出了具体的路由守卫代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

参考:微信官方平台、前辈的经验和网络优秀案例的参考

用户点击微信网页进行授权,将会进行以下几个步骤:

1.用户访问网站

2.通过是否有用户信息和cookie来判断是否第一次登陆。

若是两者都没有,那就是第一次登陆。那么就要通过api申请微信授权地址,获取后用户自动跳转到微信授权页面信息。微信服务器发起回调请求,这时回调到服务器端。

若是没有用户信息,那说明页面刷新后vuex内存储内容丢失,将服务器中的用户信息传递给vuex中。

其余的可以登陆。

3.服务器端存储用户信息,进行注册登录操作(记录cookie),重定向到vue客户端

4.重复第一步,授权登陆成功。

 

ps:cookie是啥?

        cookie,服务器通过response设置"set-cookie"头是映射的值("若干个用;隔开的键值对")

       客户端访问服务器,服务器有一个专用的叫做"Set-Cookie"相应头,该头的值是一个键值对,客户端接收到set--Cookie,自动将他保存到客户端

  当客户端再次访问服务器时,之前的保存到客户端的cookie信息自动加载到请求头的信息中(请求头名叫Cookie,值就是之前保存到客户端的键值对),发送给服务器,服务器通过response,getHeader(“Cookie”)就能获取相应的键值对的信息了

 

具体代码如下:

router.beforeEach((to, from, next) => {

if ((!VueCookies.get('wxssid') && !store.state.userName)) {

// 第一次访问

back.tokenAddGet().then(function (response) {

var data = response

if (data.errno === 0) {

window.location.href = data.data.address

}

})

} else if (!store.state.userName) {

// 非第一次访问,输入登录信息

back.userInfoQue().then(function (response) {

var data = response

if (data.errno === 0) {

store.dispatch('setUserName', response.data.nickName)

store.dispatch('setHeadImgUrl', response.data.headImgUrl)

next()

}

})

next()

} else {

// 已登录

next()

}

})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值