vue移动端微信授权登录插件封装的实例
1、新建wechatAuth.js文件 class VueWechatAuthPlugin {
install(Vue,options) { } constructor() { static makeState() { setAppId(appid) { set redirect_uri(redirect_uri) { get redirect_uri() { get state() { set state(state) { get authUrl() { returnFromWechat(redirect_uri) { get code() { const vueWechatAuthPlugin = new VueWechatAuthPlugin() export default vueWechatAuthPlugin 2、main.js中导入 Vue.use(wechatAuth,{appid: XXXXXXXXX});
3、路由钩子中可以进行相关操作 {
if (store.state.loginStatus == 0) {
//微信未授权登录跳转到授权登录页面
let url = window.location.href;
//解决重复登录url添加重复的code与state问题
let parseUrl = queryString.parse(url.split('?')[1]);
let loginUrl;
if (parseUrl.code && parseUrl.state) {
delete parseUrl.code;
delete parseUrl.state;
loginUrl = `${url.split('?')[0]}?${queryString.stringify(parseUrl)}`;
} else {
loginUrl = url;
}
wechatAuth.redirect_uri = loginUrl;
store.dispatch('setLoginStatus',1);
window.location.href = wechatAuth.authUrl
} else if (store.state.loginStatus == 1) {
try {
wechatAuth.returnFromWechat(to.fullPath);
} catch (err) {
store.dispatch('setLoginStatus',0)
next()
}
store.dispatch('loginWechatAuth',wechatAuth.code).then((res) => {
if (res.status == 1) {
store.dispatch('setLoginStatus',2)
} else {
store.dispatch('setLoginStatus',0)
}
next()
}).catch((err) => {
next()
})
}else {
next()
}
});
以上这篇vue移动端微信授权登录插件封装的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |