用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地址

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 高中必备学习软件_有那些免费好用的高中学习软件?[通俗易懂]

    高中必备学习软件_有那些免费好用的高中学习软件?[通俗易懂]刷题类1.猿题库记录一天时间app安卓1.爱今天2.timingIOS1.时间块2.atimelogger3.ihour4.nowthenfree专注类1.forest2.番茄todo背单词app这个感觉好多人都知道1.沪江开心词场2.扇贝单词3.百词斩4.知米背单词5.墨墨背单词6.不背单词7.单词日记8.易呗背单词听力方面app可可英语英语流利说每日英语听力沪江听力网易云的电台朗易思听缤…

  • Web安全之业务逻辑漏洞

    Web安全之业务逻辑漏洞业务逻辑不同的项目有不同的功能,不同的功能需要不同的代码实现,实现这些核心功能的代码就叫业务逻辑。业务逻辑漏洞业务逻辑漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能正常处理或处理错误。常见的业务逻辑漏洞业务逻辑漏洞挖掘过程确定业务流程—>寻找流程中可以被操控的环节—>分析可被操控环节中可能产生的逻辑问题—>尝试修改参数触发逻辑问题业务逻辑漏洞1.URL跳转漏洞1.1.URL跳转概述1.2.触发方式及绕或技巧1.3.修复方法2.短信邮箱轰炸漏洞2.1.短信邮.

  • Android HandlerThread分析[通俗易懂]

    之前Handler分析的文章有分析过,子线程Thread中是不能直接使用Handler的,需要调用Looper.prepare()方法,因此Android就为我们提供了Handler和Thread结合的方法HandlerThread方法,我们先来看下HandlerThread的源码:publicclassHandlerThreadextendsThread{intmP…

  • MATLAB画图颜色渐变「建议收藏」

    MATLAB画图颜色渐变「建议收藏」原文(https://wenku.baidu.com/view/bf87a9d5804d2b160a4ec03f.html)1渐变1.1t=[linspace(0,2*pi)nan];x=sin(t);y=cos(2*t);z=sqrt(t);%所要绘制的曲线方程patch(x,y,z,z,’edgecolor’,’flat’,’facecolor’,’none’)vi…

  • 如何面对大容量的数据存储问题_最安全的数据存储方式

    如何面对大容量的数据存储问题_最安全的数据存储方式公司在高速发展中,总会遇到各种各样的网络问题,今天笔者和大家分享一个“公司网站存储需求”的实际案例。 案例背景客户公司网站的存储需求越来越大,已有NAS存储服务器的空间不能满足业务日趋增长的需求,此时网站面临如下问题: 网站存储扩容需要另行申请采购和做规划采购,需要一定周期才能使用,无法解决燃眉之急; 网站的视频资源访问速度慢; 已有存储NAS存储使用时间长,…

  • Centos7更换yum镜像源

    Centos7更换yum镜像源Centos7更换yum镜像源1、首先备份/etc/yum.repos.d/CentOS-Base.repomv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup2、下载对应版本repo文件,放入/etc/yum.repos.d/(操作前请做好相应备份)以CentOS7-Base-163.repo为例#CentOS-Base.repo##Themirrorsystemusesth

发表回复

您的电子邮箱地址不会被公开。

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