正确安全登录(登录)部署为Web应用程序的Google Apps脚本项目

问题描述 投票:0回答:1

我正在开发一个Google Apps脚本项目(可以绑定到电子表格或独立),它将部署为webapp,我想授予用户访问权限

  • 1)某些用户和Google登录(某些用户将被授予访问权限或某些用户将无法访问)
  • 2)其他人的用户名/密码。

1)Google登录

我发现它比我想象的更棘手。我期望存在一些简单的功能/方法,可以使它像Google一样保证安全级别。我首先发现的是:https://developers.google.com/identity/sign-in/web/。首先它看起来非常简单,所以我试图实现这个代码:https://developers.google.com/identity/sign-in/web/build-button,但是我在填充content="YOUR_CLIENT_ID.apps.googleusercontent.com"后陷入困境。我从CLIENT_ID部分Google Cloud Platform填写了适当的Credentials,并试图登录我已发布的项目。我懂了:

错误:redirect_uri_mismatch

请求中的JavaScript源https://n-__________________________________-script.googleusercontent.com与授权给OAuth客户端的JavaScript不匹配。访问https://console.developers.google.com/apis/credentials/oauthclient/___________.apps.googleusercontent.com?project=_____以更新授权的JavaScript源。

所以我复制了第一个链接,然后我把googleuser.comto Authorized domainsand然后我将链接粘贴到Authorized JavaScript origins。但我不允许保存它,这突然出现:

错误

您无权执行此操作。

追踪号码:c411401060

我不知道为什么。几个月前,类似的东西不成问题。我想这与谷歌新的限制范围政策有关。我试图使它适用于绑定和独立项目,结果没有区别。所以最后(部分是因为这个架构:https://developers.google.com/identity/sign-in/web/server-side-flow)我得出的结论是,网站登录的整个概念并不打算用于已发布的Apps脚本项目。

a)我错了吗?如果没有,我怎么能让它工作呢?

b)为什么我得到错误 - 跟踪号码:c411401060?有人知道吗?

所以我继续在其他地方寻找解决方案。我发现的最相似的问题是Google app script web app, how to create a login button?。但它已经超过三年了,并没有非常令人满意的答案(或者我不理解它们):

c)我是否真的必须同时发布多个项目才能为某些用户授予访问权限,而对于某些用户而言没有Google帐户?用户登录后,如何注销?有没有一种简单的方法来如何可靠地检查用户ID或Gmail?

d)有人有代码的工作示例吗?作为一个初学者,我非常喜欢这个例子,因为我敢打赌,如果有一个简单的解决方案,我已经读过它,但我没有注意到它是我需要的。


2)用户名/密码

虽然十年了,但我发现阅读这个The definitive guide to form-based website authentication很有用。或者至少我不知道更好的文章从哪里开始。链接赞赏。

我对如何进行用户名/密码登录的想法是,我将通过google.script.run创建一个由用户调用的服务器端函数,该函数将检查用户名和密码的有效性。 a)安全吗?现在,当用户登录时,我可以让webapp工作吗?我的意思是用户发送了用户名和密码,因此应用程序只会继续使用而不涉及其他技术? b)或者如果我在登录后让一些服务器端函数生成一个随机字符串,它将被发送到客户端并作为会话的令牌,我会使应用程序更安全吗?


最佳实践,提示,代码,来源赞赏!

谢谢

google-apps-script web-applications google-oauth
1个回答
1
投票

可能是我可以给你第一个问题的答案。

1)Google登录。在开始之前添加此Google Oauth2 link

1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

这将解决一些登录问题

除了云控制台中的默认Apps脚本ID之外,您还需要添加新的OAuth 2.0客户端ID,还应该从API控制台启用所需的API。

在App Script IF中你可以添加这个url qazxsw poi

在授权回调网址下

在新创建的oauth客户端之后,您可以将此脚本应用程序URL添加为重定向URL

https://script.google.com/oauthcallback

复制后,将新创建的Oauth的客户端ID和客户端密钥粘贴到项目中。

© www.soinside.com 2019 - 2024. All rights reserved.