当前位置: 首页 > news >正文

做网站建设需要做哪些工作室Wordpress 转发后查看

做网站建设需要做哪些工作室,Wordpress 转发后查看,百度推广怎么运营,北京互联网公司招聘目录 前置操作 具体步骤 加载js文件 初始化google登录对象 生成登录按钮 一键式登录功能 相关文档 海外项目避免不了接入谷歌登录,下面记录一下我的实现步骤吧!(vue3项目) 前置操作 首先要经过谷歌OAuth2.0来验证和授权&…

目录

前置操作

具体步骤

加载js文件

初始化google登录对象

生成登录按钮

一键式登录功能

相关文档


海外项目避免不了接入谷歌登录,下面记录一下我的实现步骤吧!(vue3项目)

前置操作

首先要经过谷歌OAuth2.0来验证和授权,配置网站域名以及生成客户端ID

创建账号网址

参考网上的一篇博客:大佬的博客

具体步骤

加载js文件

在index.html引入Google API的js地址

<script src="https://accounts.google.com/gsi/client" async defer></script>

初始化google登录对象

可以在App.vue中初始化google登录,初始化后,登录对象全局生效,后续其他页面调用API不用再初始化了

  • google.accounts.id.initialize 方法需要在onload 回调函数中调用
  • callback 参数是登录成功的回调函数,可获取的参数包括客户端ID、用户的ID令牌等。业务中可以拿这些参数与后端交互,获取本项目中可使用的用户信息。
window.onload = () => {initGoogle()
}// 初始化google - 全局生效
function initGoogle() {try {google.accounts.id.initialize({client_id: "前置步骤配置生成的客户端ID",callback: handleCredentialResponse,use_fedcm_for_prompt: true});} catch (error) {console.log('app google error1', error.message);// Toast(`Google Api初始化失败, 请稍后再试`)}
}

生成登录按钮

UI图设计的是这种

因为UI图设计的具有不确定性,所以我们要写一个登录按钮放在原生按钮的下面,把原生按钮的透明度设置为0.01(本来要设置为0,发现点击不能登录了)

// template
<div class="login_button"><img src="@/assets/img/google-icon.png" alt=""><div class="text">Sign in with Google</div><div id="googleSignInButton"> </div>
</div>// JS
function showDialog() {show.value = truecreateLoginButton()
}function createLoginButton() {try {google.accounts.id.renderButton(document.getElementById("googleSignInButton"),{ type: 'standard', theme: "outline", shape: 'circle', size: "large", width: 320, text: '使用 Google 账号登录' }  // 你可以自定义按钮的主题和大小);} catch (error) {console.log('login google error2', error.message);}
}// css
.login_button {width: 320px;height: 48px;margin: 39px auto 62px auto;background: #185ABC;border-radius: 50px;padding: 0 34px;display: flex;align-items: center;cursor: pointer;position: relative;img {width: 24px;margin-right: 31px;flex-shrink: 0;}.text {font-weight: 500;font-size: 16px;color: #FFFFFF;line-height: 22px;}#googleSignInButton {position: absolute;top: 4px;left: 1px;z-index: 10;opacity: 0.01;}
}

调整透明度,可以看到原生按钮

点击后,会弹出一个浏览器弹框,选择账号即可登录了

一键式登录功能

网站右上角自动弹出登录弹框

// 弹出登录提示
function createLoginPrompt() {try {google.accounts.id.prompt((notification) => {});} catch (error) {console.log('google error', error.message);}
}

相关文档

最新文档,登录注意事项

JS API文档

http://www.dtcms.com/a/418345.html

相关文章:

  • Kafka面试精讲 Day 24:Spring Kafka开发实战
  • 网站模板 站长之家网站开发需要准备什么
  • bat自动保存论文到制定目录
  • 智能化生产+技术壁垒构建食品容器领军者新天力的上市答卷
  • Qt自定义圆环比例控件
  • 第三方软件测试机构:Appium如何使用Selenium的客户端库?
  • Scikit-learn Python机器学习 - 聚类分析算法 - Agglomerative Clustering(凝聚层次聚类)
  • 便宜的自制 30 MHz - 6 GHz 矢量网络分析仪
  • Meta Ray-Ban Display眼镜将引领AR眼镜的智能化应用落地
  • C++篇 Vector模拟实现(1) 初始化 迭代器遍历 插入尾插尾删 一文详解
  • 学习日报 20250928|React 中实现 “实时检测”:useEffect 依赖项触发机制详解
  • 怎么样可以做自己的网站做网站投注代理犯罪吗
  • 网站空间是服务器吗成都网站设计建设推荐
  • 基于 LangGraph 框架实现智能研究助手示例程序
  • 常用网络命令
  • 实验指导-基于阿里云函数计算的简单邮件发送服务 之数据库访问中间件
  • PPO算法
  • 网站建设公司方维wordpress 上传文件路径
  • gRPC0到1系列之【6】
  • 【Java系列课程·Java学前须知】第3课 JDK,JVM,JRE的区别和优缺
  • JVM栈溢出时如何dump栈信息?
  • 重庆奉节网站建设公司重庆沙坪坝地图全图
  • RK3588芯片与板卡全面解析:旗舰级AIoT与边缘计算的核心
  • 226.翻转二叉树(二叉树算法题)
  • #itertools.product
  • AcWing 1172:祖孙询问 ← 倍增法求LCA(DFS预处理)
  • C语言 分支结构(1)
  • 扭蛋机抽赏小程序:重构线上娱乐的“盲盒式”新体验
  • EtherNet/IP转EtherCAT网关在新能源制造中实现机器人与运动卡数据互通
  • Imatest-Wedge模块