このメソッドはでも安全です:誰もアクセス権を持ちません。あなたのWebアプリケーションがオプション "Execute the app as:me"で展開されている場合、Session.getActiveUser().getEmail()
はおそらく空の文字列を返します。 documentationを参照してください:
メールアドレスが利用可能である状況が異なります。たとえば、ユーザーの電子メール・アドレスは次のように、スクリプトはそのユーザーの許可なしに実行することができます任意のコンテキストでは使用できません[...] 「私として実行」(つまり、ユーザーの代わりに開発者によって承認された)にデプロイされたWebアプリケーション。ただし、開発者とユーザーが同じG Suiteドメインに属している場合、これらの制限は一般的に適用されません。
ユーザーはウェブアプリケーションにアクセスするためにログインしていても、自分の代わりに何かをする、たとえば自分のメールアドレスを見つけることを許可していないという問題があります。
「Webアプリケーションにアクセスするユーザー」によってWebアプリケーションが実行されるように展開されている場合は、Web AppがそのWebサイトを認証するように求められます。しかし、ユーザーがすでに直接変更できるファイルのみを変更することができます。
この難点を回避する方法は、許可されたユーザーにWebアプリケーションのキー(長いランダムな文字列)を与えることです。彼らはhttps://..../exec?key=mykey
に行くことによって、アプリケーションにアクセスすると、以下のようにアプリがキーをチェックします。
function doGet(e) {
if (e.parameter.key == "mykey") {
var ss = SpreadsheetApp.openById("spreadsheet Id");
// modify the spreadsheet
}
}
さて、これはあなたの独創的なアプローチよりもさらに粗製のですが、それは動作します。間違った人がキーを取得した場合、そのアプリケーションを使用できるようになりますが、そのダメージはアプリケーションが実行できるものに限定されます。誰かがあなたのGoogleアカウントにアクセスすることは、それほど悪いことではありません。
出典
2017-08-12 18:40:56
FTP