用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进行授权页面跳转,授权过来拿到后端需要的openID,accessToken参数,最后后端获取到授权用户信息进行业务处理完之后再返回给前端进行登录操作等等…

二、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方法获取 openId,accessToken

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前端传过来的openID,accessToken获取到授权用户信息,然后进行业务逻辑处理再返回给前端

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 银行家算法C语言版「建议收藏」

    银行家算法C语言版「建议收藏」#include<stdio.h>#include<stdlib.h>#include<conio.h>#definem50#definetrue1#definefalse0intno1;//进程数intno2;//资源数intr;intallocation[m][m],need[m][m],available[m],max[m][m];charname1[m],name2[m];.

    2022年6月8日
  • iidea2022.01激活【2022.01最新】2022.01.24

    (iidea2022.01激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1TCF2R91JZ-eyJsaWNlbnNlSWQi…

    2022年3月31日
  • idea激活码2021.10_最新在线免费激活「建议收藏」

    (idea激活码2021.10)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

    2022年3月27日
  • 基于matlab的声源定位系统_盲源分离算法

    基于matlab的声源定位系统_盲源分离算法(转载)基于TDOA声源定位算法仿真–MATLAB仿真转载自:https://blog.xxcxw.cn/archives/28声源定位算法是利用麦克风阵列进行声音定位,属于宽带信号,传统的MUSIC和DOA算法并不适用该场景,本仿真主要用TDOA算法进行定位。常用的阵列信号定位算法主要有三大类:基于高分辨率谱估计的定位技术、基于可控波束形成(Beamforming)的定位技术和基于TDOA的定位技术,以上三种算法在阵列信号处理中,尤其是移动通信的阵列信号处理中都有广泛的应用。但是声音信号与传统的电磁

    2022年9月22日
  • java类的加载_Java高并发实战

    java类的加载_Java高并发实战【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)http://blog.csdn.net/javazejian/article/details/73413292出自【zejian的博客】关联文章:深入理解Java类型信息(Class对象)与反射机制深入理解Java枚举类型(enum)深入理解Java注解类型(@Annotation)深入理解

    2022年8月11日
  • ubuntu配置ftp server

    ubuntu配置ftp server

    2021年8月27日

发表回复

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

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