google授权第三方登录,.? 和 ??的用法以及一些css的小问题
1. js中?. 和 ?? 的用法
-
?. 可选链操作符,判断是否有该属性,有则返回,没有就返回undefined,不会报错。如
this.video[index]?.detail?.width如果我们按照平常写this.video[i].detail.width,当video[i]为null或者detail为undefined时候,一定会报错说,不能从一个未定义的属性上取后面的xx属性。但是按照这个 则不会报错,只是直接返回undefined或者null
-
?? 判断是否为null 或者undefined,是就赋默认值,不是则取前面。如
this.video[index]?.detail?.width ?? this.width这句代码的意思就是 如果video.detail.width存在,那么就取这个值,如果不存在,就取this.width这个默认值作为width。
2. 点击元素出现竖线
给元素加css属性user-select:none; ,不允许用户选中
给元素加css属性caret-color: rgba (0, 0, 0, 0) ;,设置竖线颜色透明
3. 页面出现弹窗后,滚动鼠标滚轮,背景会穿透滚动
<div class="window-bg">
<div class="content"></div>
</div>
<style>
.window-bg {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 1000;
overflow: auto; //这个很重要,是不滚动的关键
}
</style>
4. 调用goodle授权进行YouTube登录(第三方登录)
这个网上有很全的说明,但是,网上的比较旧了。所以说比较推荐去看文档。迁移到 Google Identity 服务 | Google Identity Services JavaScript SDK | Google Developers,当然我也简单说下流程
-
首先,我们肯定是需要后端去配置一下的,可以看下这里,或者网上随便搜个,这里的流程很规范,也没什么变化,只要按照你的重定向地址等配置好就可以了
-
接着是前端的部分,就直接贴代码了
<template> <div class="add-account" @click="addNewAccount"></div> </template> <script> import constants from "../constants/constants"; export default { name: "GoogleAuthorize", data(){ return{ client:null,//用于保存oauth2的参数 } }, methods:{ //点击时出现登录弹窗。向google发送请求 addNewAccount(){ this.client.requestCode(); }, //初始化google登录 initNewAccount() { let google = window.google; if (google) { //Google登录的授权,网址不是我们需要的 打开窗口的方式可以参考 this.client = google.accounts.oauth2.initCodeClient({ state: '这里传你后端需要的参数,比如用户的token等',//当然这里也可以不传,但这样就没有res.state client_id: constants.GOOGLE_CLIENT_ID,//客户端ID scope: constants.GOOGLE_SCOPE,//作用域 // authorized_grant_types:"implicit", // include_granted_scopes: 'true', ux_mode:'popup',//弹窗的方式 callback: this.callbackFunction }) } }, //google弹窗打开回调,像你的后端发请求,这里是封装后的axios,也可以看例子用原生的xhr callbackFunction(res){ //这里可以向后端发送请求,会有个response参数, }, }, mounted() { this.initNewAccount(); }, } </script>
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)