小编Dav*_*ber的帖子

Google 身份服务:如何保留会话

我正在将与 google Drive js api 交互的网络应用程序迁移到新的 Google Identity Services API,并遵循此快速入门指南。GIS 是强制性的,因为从 2023 年 3 月起旧的 GIS 将不再使用。

在本指南中,只有一个小注释提到在页面重新加载后保留登录状态

注意:初始用户授权后,您可以使用immediate:true调用gapi.auth.authorize来获取身份验证令牌,而无需用户交互。

但是,没有明确的代码示例如何做到这一点,而且可以在迁移指南中找到,该示例gapi.auth2.authorize()已被弃用。

  • 使用 One Tap(id 为“g_id_onload”的 div)不是一个解决方案,因为我需要扩展范围(以便稍后在 google 驱动器上访问)
  • 将访问令牌存储在本地存储中(如某些线程中提到的)是不可行的,因为它违反了 oauth 模型
  • 在每次页面重新加载后调用requestAccessToken()而不需要用户交互是不可行的,因为第一弹出窗口根本不显示(在所有主要浏览器中被阻止),第二如果允许弹出窗口会显示并立即隐藏(糟糕的用户界面)

有人可以给我一个例子,其中通过 JS 使用 GSI 通过页面重新加载来保留会话吗?

谷歌身份服务似乎还没有准备好投入生产,还是我错了?

google-authentication oauth-2.0 google-drive-api google-identity

11
推荐指数
1
解决办法
1069
查看次数

npm脚本:读取.env文件

我有一个简单的要求:在我的npm脚本package.json文件中,有以下一行:

{
    "scripts": {
        "example": "some-lib --argument --domain \"https://tld.com\""
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想排除“域”。

首先尝试使用$npm_package_config,它可以工作:

{
    "config": {
        "domain": "https://tld.com"
    },
    "scripts": {
        "example": "some-lib --argument --domain \"$npm_package_config_domain\""
    }
}
Run Code Online (Sandbox Code Playgroud)

但我想从本地.env文件加载域。

我没有找到任何解决方案来在命令行上的npm脚本中读取env文件的内容。

有人可以给我提示解决此问题的方法吗?

npm npm-scripts

9
推荐指数
4
解决办法
3710
查看次数

gitignore删除文件夹中的所有文件,但保持文件夹结构

我具有以下文件夹结构:

/foo/
/foo/test.txt
/foo/.gitkeep
/foo/bar/test.txt
/foo/bar/.gitkeep
/foo/bar/baz/test.txt
/foo/bar/baz/.gitkeep
Run Code Online (Sandbox Code Playgroud)

现在,我想排除“ foo”文件夹中的所有文件及其子文件夹(和子子文件夹)中的所有文件,但不包括所有.gitkeeps(以便保留文件夹结构)。这也应该适用于3个以上级别的子文件夹。

以下gitignore-rules起作用:

/foo/**
!/foo/**/
!/foo/**/.gitkeep
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下,这为什么起作用吗?有没有更干净的方法可以做到这一点?

git gitignore

8
推荐指数
2
解决办法
4859
查看次数

javascript return new Promise:简短的语法

使用异步 javascript 时,每秒函数如下所示:

function_name()
{
    return new Promise((resolve,reject) => {
       // do some async task
       resolve();
    });
}
Run Code Online (Sandbox Code Playgroud)

即使使用 es6 async/await,我也无法避免“return new Promise((resolve,reject) => { ...”这一部分。

有没有另一种方法可以在没有所有这些重复行的情况下编写这样的代码?

谢谢。

javascript es6-promise

6
推荐指数
1
解决办法
1万
查看次数