怎么使用微信扫描二维码登录网页版微信

目前,很多软件都可以使用第三方账号登入。微信可谓是开辟新径,微信则使用二维码扫描登录。如何使用微信扫描二维码登录网页版微信?

怎么使用微信扫描二维码登录网页版微信

方法

首先,在桌面上找到360浏览器图标。

怎么使用微信扫描二维码登录网页版微信 第2张

鼠标右击,找到“打开”,鼠标单击一下进入。

怎么使用微信扫描二维码登录网页版微信 第3张

进入网页后在搜索栏中输入“微信网页版”后,点击“搜索”。

怎么使用微信扫描二维码登录网页版微信 第4张

在出来的选项中,选择带有“官网”的“微信网页版”,鼠标单击进入。

怎么使用微信扫描二维码登录网页版微信 第5张

此时网页页面会出现一个二维码图案,这时需要使用手机进行扫描。

怎么使用微信扫描二维码登录网页版微信 第6张

扫描完成后,你的微信头像会显示出来,然后需要在手机上确认登录。

怎么使用微信扫描二维码登录网页版微信 第7张

最后可以看见成功登录了网页版微信,你可以根据需要发送文件或者和好友聊天了。

怎么使用微信扫描二维码登录网页版微信 第8张

扩展阅读,以下内容您可能还感兴趣。

如何使用java实现二维码扫描登录微信网页版(微信端)?

jsp+spring+struts2+mybatis:

模仿微信pc网页版扫码登录

使用js代码生成qrcode二维码减轻服务器压力

js循环请求服务端,判断是否qrcode被扫

二维码超时失效功能

二维码被扫成功登录,服务端产生sessionId,传到页面使用js保存cookie

多线程

### 生成qrcode相关js jquery.qrcode.js - ### 代码 “

请使用手机扫码

//生成二维码 

!function(){ 

var uuid = (“#uuid”).val();

var content;

content = “……….do?uuid=”+uuid;

//console.dir(content);(‘.pc_qr_code’).qrcode({ 

render:”canvas”, 

width:200, 

height:200, 

correctLevel:0, 

text:content, 

background:”#ffffff”, 

foreground:”black”, 

src:”/logo.png” 

}); 

setCookie(“sid”, 123, -1*60*60*1000); 

keepPool();//自动循环调用 

}();

   function keepPool(){

       var uuid = $("#uuid").val();

       $.get(ctx+"/web/login/pool.do",{uuid:uuid,},function(msg){//如果放入一个不存在的网址怎么办?

           //console.log(msg);

           if(msg.successFlag == '1'){

               $("#result").html("扫码成功");

               setCookie(msg.data.cname, msg.data.cvalue, 3*60*60*1000);

               //alert("将跳转...");

               window.location.href = ctx +"/webstage/login/success.do";

           }else if(msg.successFlag == '0'){

               $("#result").html("该二维码已经失效,请重新获取");

           }else{

               keepPool();

           }

       });

   }

   //设置cookie

   function setCookie(cname, cvalue, expireTime) {

    var d = new Date();

    d.setTime(d.getTime() + expireTime);//设置过期时间

    var expires = "expires="+d.toUTCString();

    var path = "path=/"

    document.cookie = cname + "=" + cvalue + "; " + expires + "; " + path;

   }

java代码

//二维码首页public String index() {        try {

           uuid = UUID.randomUUID().toString();            super.getRequest().setAttribute("uuid", uuid);

           ScanPool pool = new ScanPool();

           pool.setCreateTime(System.currentTimeMillis());

           Map<String, ScanPool> map = new HashMap<String, ScanPool>(1);

           map.put(uuid, pool);

           PoolCache.cacheMap.put(uuid, pool);

           pool = null;

       } catch (Exception e) {

           Log4jUtil.CommonLog.error("pc生成二维码登录", e);

       }        return "index";

   }//判断二维码是否被扫描public void pool() {

       DataResultInfo result = null;

       System.out.println("检测[   " + uuid + "   ]是否登录");

       ScanPool pool = null;

       if(MapUtils.isNotEmpty(PoolCache.cacheMap)) pool = PoolCache.cacheMap.get(uuid);        try {            if (pool == null) {                // 扫码超时,进线程休眠

               result = DataResultInfo.getInstance().failure();

               result.setSuccessFlag(CommonConstant.Zero);

               result.setExtension(CommonConstant.Zero, "该二维码已经失效,请重新获取");

               Thread.sleep(10 * 1000L);

           } else {                // 使用计时器,固定时间后不再等待扫描结果--防止页面访问超时

               new Thread(new ScanCounter(uuid, pool)).start();                boolean scanFlag = pool.getScanStatus(); //这里得到的ScanPool(时间靠前)和用户使用手机扫码后得到的不是一个,用户扫码后又重新更新了ScanPool对象,并重新放入了redis中,,所以这里要等待上面的计时器走完,才能获得最新的ScanPool

               if (scanFlag) {

                   result = DataResultInfo.getSuccess();                    // 根据e69da5e887aae799bee5baa6e997aee7ad9431333363396465uuid从redis中获取pool对象,得到对应的sessionId,返给页面,通过js存cookie中

                   JSONObject jsonObj = new JSONObject();

                   jsonObj.put("cname", CookieConstant.SESSION_KEY);

                   jsonObj.put("cvalue", pool.getSession());

                   result.setData(jsonObj);

               } else {

                   result = DataResultInfo.getInstance().failure();

                   result.setMessage("等待扫描");

               }

           }

       } catch (Exception e) {

           e.printStackTrace();

       }

       sendJsonMessage(result);

   }//手机扫码接口(以id和token作为用户身份登录)

public String phoneScanLogin() {

       DataResultInfo result = null;

        ScanPool pool = null;

        if(MapUtils.isNotEmpty(PoolCache.cacheMap)) pool = PoolCache.cacheMap.get(uuid);        try {            if (pool == null) {

               result = DataResultInfo.getInstance().failure();

               result.setMessage("该二维码已经失效,请重新获取");

           } else {                if (StringUtils.isNotEmpty(id) && StringUtils.isNotEmpty(token)) {                    //根据id和token查询后台,获取用户信息userBean

                   String redisToken = redisUtil.getRedis(RedisKeyConstant.APP_TOKEN+userId);                    if(redisToken != null && redisToken.equals(token)){

                  UserBean userBean = userService.findByUserId(Long.valueOf(userId));                       if (userBean != null) {

                           String sessionId = SessionConstant.SESSION_ID_PRE

                                   + FormatUtils.password(userBean.getId()

                                           .toString());

                           Map<String, String> cookieSession = new HashMap<String, String>();

                           cookieSession

                           .put(CookieConstant.SESSION_KEY, sessionId);                            // WrCookie.writeCookie(getResponse(),cookieSession);

                           // 添加用户信息到redis

                           boolean re = redisUtil.addUserInfo( RedisKeyConstant.SESSION + sessionId, BeanUtils.toBean(userBean, UserInfo.class));

                           getSession().setAttribute( SessionConstant.USER_INFO_WEB, BeanUtils.toBean(userBean, UserInfo.class));

                           getSession().setAttribute( DomainConstant.USER_CENTER_KEY, DomainConstant.USER_CENTER);

                           pool.setSession(sessionId);

                           pool.scanSuccess();

                       }else{

                           result = DataResultInfo.getInstance().failure();

                           result.setMessage("用户信息获取异常!请稍后再试");

                       }

                   } else {

                       result = DataResultInfo.getInstance().failure();

                       result.setExtension("11", "用户身份信息失效,请重新登录!");

                   }

               } else {

                   result = DataResultInfo.getInstance().failure();

                   result.setMessage("请求参数有误!");                    return "error";

               }                // 不能清除,否则conn方法得不到pool对象,不会进入线程休眠

               // System.out.println("清除扫描过的uuid");

               //PoolCache.cacheMap.remove(uuid);

           }

       } catch (Exception e) {

           Log4jUtil.CommonLog.error("手机扫码 后访问 异常", e);

       }

       sendJsonMessage(result);        return null;

   }//扫码成功跳转页

public String success() {

       String sessionId = WrCookie.getCookie(super.getRequest(), CookieConstant.SESSION_KEY);

       UserInfo userInfo = redisUtil.getUserInfo(RedisKeyConstant.SESSION + sessionId);       super.getRequest().setAttribute(SessionConstant.USER_INFO_WEB, userInfo);        return SUCCESS;

   }//线程判断二维码是否超时class ScanCounter implements Runnable {    public Long timeout = 30 * 1000L; //超时时长

   // 传入的对象

   private String uuid;    private ScanPool scanPool;    public ScanCounter(String p, ScanPool scanPool) {

       uuid = p;        this.scanPool = scanPool;

   }    @Override

   public void run() {        try {

           Thread.sleep(timeout);

       } catch (InterruptedException e) {

           e.printStackTrace();

       }

       notifyPool(uuid, scanPool);

   }    public synchronized void notifyPool(String uuid, ScanPool scanPool) {        if (scanPool != null) scanPool.notifyPool();

   }    public String getUuid() {        return uuid;

   }    public void setUuid(String uuid) {        this.uuid = uuid;

   }    public ScanPool getScanPool() {        return scanPool;

   }    public void setScanPool(ScanPool scanPool) {        this.scanPool = scanPool;

   }

}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166

ScanPool.java(存放uuid的bean)

public class ScanPool implements Serializable{

   /**

    * @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么)

    */

   private static final long serialVersionUID = -9117921544228636689L;    private Object session ;    //创建时间  

   private Long createTime = System.currentTimeMillis();  

   //登录状态  

   private boolean scanFlag = false;  

   public boolean isScan(){  

       return scanFlag;  

   }  

   public void setScan(boolean scanFlag){  

       this.scanFlag = scanFlag;

   }

   /**

    * 获取扫描状态,如果还没有扫描,则等待固定秒数

    * @param wiatSecond 需要等待的秒数

    * @return

    */  

   public synchronized boolean getScanStatus(){  

       try  

       {  

           if(!isScan()){ //如果还未扫描,则等待  

               this.wait();  

           }  

           if (isScan())  

           {   System.err.println("手机扫描完成设置getScanStatus..true...........");                return true;  

           }  

       } catch (InterruptedException e)  

       {  

           e.printStackTrace();  

       }  

       return false;  

   }  

   /**

    * 扫码之后设置扫码状态

    * @param token

    * @param id

    */  

   public synchronized void scanSuccess(){  

       try  

       {  System.err.println("手机扫描完成setScan(true)....同时释放notifyAll(手机扫码时,根据uuid获得的scanpool对象)");

           setScan(true);

           this.notifyAll();  

       } catch (Exception e)  

       {  

           // TODO Auto-generated catch block  

           e.printStackTrace();  

       }  

   }  

   public synchronized void notifyPool(){  

       try  

       {  

           this.notifyAll();  

       } catch (Exception e)  

       {  

           // TODO Auto-generated catch block  

           e.printStackTrace();  

       }  

   }  

   /***********************************************/

   public Long getCreateTime()  

   {  

       return createTime;  

   }  

   public void setCreateTime(Long createTime)  

   {  

       this.createTime = createTime;  

   }    public Object getSession() {        return session;

   }    public void setSession(Object session) {        this.session = session;

   }

电脑版微信不用扫描二维码怎么登录

1、需要在电脑中下载安装“安卓模拟器”和“微信安卓版”,安卓模拟器大家百度搜索一下,可以找到很多。下面我们这里使用的是“东东手游助手”,在电脑中打开下载安装的【东东手游助手】,然后在zhidao【我的应用】中,点击【安装本地应用】,然后打开下载的【微信安卓版】进行安装;

2、在安卓模拟器中安装微信安卓版成功后,就可以点击【启动】打开微信了;

3、接下来会弹出微信登陆界面,登陆界面不同微信网页版,而是很手机版回基本相同,我们直接点击左下角的【登陆】;

4、再接下来我们看到的默认是手机号登陆,无需使用二维码。如果手机在身答边,可以接受验证码的话,可以直接使用手机号登陆,然后获取短信验证完成登陆。如果手机不在身边或者丢了,我们还可以点击下方的【使用其他方式登陆】。

微信登录电脑版不扫二维码怎么登陆

打开百度,搜索天天模拟器,进入天天模拟器官网

点击官网里面的”百立即下载“,跳出“新建下载任务”框。

点击“新建下载任务”框里面的“浏览”选择把文件下载到电度脑的哪一个地方

《一般默认的都是下载到电脑C盘,但是下载到C盘会很占电脑,导致电脑反应变迟钝问,所以建议下载到电脑的其他盘里面,D、E、F盘都可以》

文件下载好后,点击“打开文件夹”就可以看见天天模拟器的图标

咱们再用鼠标左键双击图标,出现如图所示,点击“运行(答R)

点击“运行”出现如图所示的框,点击”开始下载“

如果出现如图类似的东西,请点击右下角的“继续版下载”,(如果没有请忽权略这一步)

8

下载完成后,再按照提示完成操作,桌面就会有“天天模拟器的图标”了,双击图标

微信网页版怎么用账号登陆

1、手机登录自己的私人微信号;

2、电脑浏览来器打开微信网页版登录页面;

3、打开手机微信上的“扫一扫”功能,对准网页版二维码扫描;

4、扫描成功,请到手机微信上确认登录源网页版,确认好了之后,网页版就会自动加载你微信信息;

5、登录成功,可以直接向好友或者微信群发送消息zhidao。

温馨提醒:微信网页版没有朋友圈功能,而且对话列表不会显示公众号发来的信息。

电脑版微信怎么扫描二维码

告诉你个十分管用的方法,

我的来是2.7.0,版本有点老,不过好用。首先要至少有两个图,其中一个是你要识别的图,另一个随源便。把这两个图分开发给任意一个人或微信传输助手。百你要点开没用的那个图,也就是随便找的那个图。点开后,右键,有四个选项,然后,移动鼠标度,不要管这四个东西,鼠标移动到图片右侧或左侧(这个要根据你发图知片的顺序,反正是要点到要识别的图),点击切换上一张或下一张,就来到了要识别道的图了。离成功仅差一步:右键,点开你就有惊喜。

望采纳,谢谢!