Tras el éxito arrollador del código de usuario para iniciar sesión automáticamente páginas
proceso de análisis
- El usuario carga la página de inicio de sesión, JS Unicode generan de forma automática, y automáticamente enviados al servidor de WebSocket después de dos segundos, la voluntad websocketSession almacenados en Unicode,
- Micro-canales de código de exploración el usuario hace clic en el botón, como el Unicode sceneId, genera aleatoriamente código de dos dimensiones, y en el caso de que la página actual no se visualiza el salto para el usuario actual
- Después de que el código de exploración de usuario, número de servicio de micro-canales como fondo adquirió Unicode sceneId, servidor de notificaciones WebSocket, la sesión que ha pasado sus valores Unicode y la sesión de valor Unicode adaptado para enviar un mensaje, comando en particular, y registramos automáticamente enviado con openID pasado
- Página recibido un mensaje específico: comandos de inicio de sesión automático y openID, automáticamente ayuda al usuario saltar al registro
//html
<p>使用微信 扫码登录/注册</p>
<img v-bind:src="wechatUrl">
import sockjs from '../assets/js/sockjs-1.1.2.min' //根据本地路径,引入sockjs
export default {
data () {
return{
wechatUrl:'',
websocket: null,
openId:''
}
}
}
beforeMount () {
var that = this;
var unicode;
var websocket = null;
var transports = [];
var url = `${IPLOCATION}/sockjs`;
websocket = new SockJS(url, undefined, {
transports: transports
});
websocket.onopen = function () {
console.log('that.websocket: connection is opened');
};
websocket.onclose = function () {
console.log('that.websocket: connection is closed');
};
websocket.onheartbeat = function () {
console.log('that.websocket: connection heartbeat...');
};
websocket.onmessage = function (e) {
if (e.data.indexOf("AUTOMATIC_LOGIN") != -1) {
websocket.onclose();
that.toLogin(e);
} else {
console.log('websocket:', e.data);
}
};
that.websocket = websocket
},
mounted(){
var that=this;
that.unicode = Math.round(Math.random() * 100000000) + "1";
$.get(IPLOCATION + `${接口}sceneId=${that.unicode}`, null, function (url) {
that.wechatUrl = url
});
setTimeout(function () {that.websocket.send(that.unicode)}, 2000);
}
//扫码登录
toLogin(e) {
var that=this;
that.openId = e.data.split("####")[1];
// var mixedValues = e.data.split('####');
// var openId = mixedValues[1]; // 用户的openId
var sceneId = 911; // 登录系统默认场景值
// 关闭二维码
// 通过ajax访问后台登录接口认证并登录
......
}