用java写一个登录界面的完整代码_javaweb简单的用户登录界面

用java写一个登录界面的完整代码_javaweb简单的用户登录界面一、前言Vue实现QQ第三方登录授权需要获取到APP_ID和回调域地址,关于这2个的获取方式可以参考小编的另外一篇文章Java实现QQ第三方登录温馨小提示:本文基于springboot+vue前后端分离的架构实现三方登录授权主要实现逻辑:前端vue进行授权页面跳转,授权过来拿到后端需要的openID,accessToken参数,最后后端获取到授权用户信息进行业务处理完之后再返回给…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、前言

Vue 实现QQ第三方登录授权需要获取到 APP_ID回调域地址,关于这2个的获取方式可以参考小编的另外一篇文章 Java 实现QQ第三方登录

温馨小提示:

本文基于springboot+vue前后端分离的架构实现三方登录授权

主要实现逻辑:

前端vue进行授权页面跳转,授权过来拿到后端需要的openIDaccessToken参数,最后后端获取到授权用户信息进行业务处理完之后再返回给前端进行登录操作等等…

二、Vue 实现QQ第三方登录授权

1、在vue项目下的index.html中引入QQ 第三方登录所需JS SDK

<script type="text/javascript" 
			src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js"
            data-callback="true"
            data-appid="填写自己的APP_ID"
            data-redirecturi="回调地址url"
            charset="utf-8">
</script>

Jetbrains全家桶1年46,售后保障稳定

2、给三方授权按钮绑定事件 -> 跳转到授权页面

<template>
    <div @click="qqLoginClick('qq')">QQ第三方登录</div>
</template>
<script> export default { 
     name: 'QQLogin', methods: { 
     // QQ 第三方登录 qqLoginClick(value) { 
     // 直接弹出授权页面,授权过后跳转到回调页面进行登录处理 QC.Login.showPopup({ 
     appId:"填写自己的APP_ID", redirectURI:"回调地址url" //登录成功后会自动跳往该地址 }); } } } </script>

3、授权过后在回调页面调用QQ的js方法获取 openIdaccessToken

export default { 
   
    name: 'Login',
    data() { 
   
  	   return { 
   
  		  timer: null  // 定时器名称
  	   }
    }
    mounted() { 
   
       // 定时器
       this.timer = setInterval(this.qqLogin, 3000);
    },
    methods: { 
   
	    // QQ第三方登录
	    qqLogin(){ 
   
		    var that = this; // 先将vue这个对象保存在_self对象中
		    //检查是否登录
		    if (QC.Login.check()) { 
   
		        //该处的openId,accessToken就是后台需要的参数了,后台可以通过这些参数获取临时登录凭证,然后就是自己的逻辑了
		        QC.Login.getMe(function (openId, accessToken) { 
   
		            if (  openId != undefined ){ 
   
		                that.loading = true;
		                // 传参给后台进行登录验证
		                that.$store.dispatch('LoginByUsername', { 
   
		                    username: '',
		                    openId: openId,
		                    accessToken: accessToken
		                }).then(() => { 
   
		                    that.loading = false;
		                    that.$router.push({ 
    path: '/' })
		                }).catch(() => { 
   
		                    that.loading = false
		                })
		            }
		        });
		        console.log('已登录!')
		        // 清除定时器
		        clearInterval(this.timer);
		        this.timer = null;
		    } else { 
   
		        console.log('未登录!')
		    }
	    }
    }
}

4、Java后端通过Vue前端传过来的openIDaccessToken获取到授权用户信息,然后进行业务逻辑处理再返回给前端

Java后端所需QQ第三方登录授权依赖

<!-- QQ第三方登录所需 -->
<dependency>
    <groupId>net.gplatform</groupId>
    <artifactId>Sdk4J</artifactId>
    <version>2.0</version>
</dependency>
import com.qq.connect.api.qzone.UserInfo;
import com.qq.connect.javabeans.qzone.UserInfoBean;
/** * QQ 授权登录 * @param openID * @param accessToken * @return * @throws QQConnectException */
public UserQueryPara qqLogin( String openID, String accessToken ) throws QQConnectException { 
   
    // 通过OpenID获取QQ用户登录信息对象(Oppen_ID代表着QQ用户的唯一标识)
    UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);
    // 获取用户信息对象(userInfoBean中包含了我们想要的一些信息,比如:nickename、Gender、头像)
    UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();
    // ...
    return null;
}

三、案例源码

码云地址GitHub地址

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231339.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DbVisualizer9.5.7编辑页面怎么设置字体编码

    DbVisualizer9.5.7编辑页面怎么设置字体编码

    2021年7月17日
    389
  • 黄金k线图基础知识图解

    黄金k线图基础知识图解  黄金可以说是2019下半年最热门的投资品种,如果懂得选择像现货黄金这样但杠杆型产品,收益更是如虎添翼。但如果你只是刚开始进入这个市场的投资者,最好从黄金k线图基础知识图解开始,认证学习关于K线和交易的知识,才能掌握在黄金市场致富的密码。  一、黄金K线分类图解  1、如果按开、收盘价的关系,可分为阳线、阴线和同价线(十字线、T字线、一字线)。  2、如果按实体的大小,可分为大阳(阴)线、中阳(阴)线和小阳(阴)线。  3、如按影线的有无,可以分为光头K线、光脚K线、光头光脚K线和带有上下影的K线

    2022年5月28日
    65
  • 微信 自动回复 机器人_python控制微信

    微信 自动回复 机器人_python控制微信1.python实现微信机器人自动回复#源代码如下:importjsonimportitchatimportrequestsimportre#机器人接口调用defgetHtmlText(url):try:r=requests.get(url,timeout=30)r.raise_for_status()r.encoding=r.apparent_encodingreturnr

    2022年9月1日
    4
  • clion激活码_在线激活[通俗易懂]

    (clion激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月22日
    95
  • BeanUtils工具类中的copyProperties方法使用「建议收藏」

    BeanUtils工具类中的copyProperties方法使用「建议收藏」文章目录1、两个包下的BeanUtils.copyProperties对比2、BeanUtils.copyProperties的深浅拷贝问题2.1、浅拷贝和深拷贝2.2、BeanUtils.copyProperties深浅拷贝问题1、两个包下的BeanUtils.copyProperties对比BeanUtils是开发中常用到的工具类,而获取这一工具类主要是通过导入org.springframework.beans.BeanUtils或者org.apache.commons.beanutils.Bean

    2022年10月3日
    2
  • 推荐安卓开发神器(里面有各种UI特效和实例)

    推荐安卓开发神器(里面有各种UI特效和实例)

    2021年8月31日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号