javascript - gapi.auth2.getAuthInstance().currentUser.get().grant() 的结果是什么
问题描述
gapi.auth2.getAuthInstance().currentUser.get().grant()
知道在 Google gapi javascript 库中调用方法的结果是什么吗?
我正在尝试使用 Google gapi.auth2 库来实现增量授权,但正在努力解决GoogleUser.grant(options)
实际返回的方法。
文档是指signIn
方法,它返回Promise<GoogleUser>
.
https://developers.google.com/identity/sign-in/web/reference#googleusergrantoptions
试图测试它,但结果似乎完全不同......
解决方案
没有结果。该grant()
方法在某种程度上是该方法的别名signIn()
。不同之处在于它被设计为请求额外的范围,正如文档所解释的那样。popup
当使用选项的值时,这是完美的ux_mode
。
例如,一个用户已经可以使用基本范围访问您的应用程序,但是有一个按钮允许用户与驱动器交互。单击该按钮时,会发生以下情况:
const user = googleAuth.currentUser.get();
const scopes = user.getGrantedScopes().split(" ");
if(!scopes.includes("https://www.googleapis.com/auth/drive")){
user.grant({
scope: "https://www.googleapis.com/auth/drive",
}).then(()=>{
console.log(user.getGrantedScopes());
//do whatever you need to do in drive
});
}
我希望你能得到基本的想法。我不太擅长解释东西,但希望这可能会有所帮助。
推荐阅读
- npm - 如何更新 node_modules 中的包
- python-3.x - 如何在 Linux 上安装 Python 包,以便已经工作的 PostgreSQL 13 plpython3u 扩展可以找到它?
- git - 在 git fetch 和 reset 之后,错误的远程是默认的
- python - 在数组中的连续值之间插入计算值
- php - 我在使用 laravel8 添加新回复时遇到问题
- windows - 为什么 WinDBG 可以在 nt!NtCreateFile 而不是 nt!NtAccessCheck 或 nt!SeAccessCheckByType 上中断?
- c - 如何使用指针访问 C 中的多维字符串数组
- javascript - 如何从 Promise 结果创建数组?
- python - Python 动态模块导入 importlib.import_module
- apache-spark - 如何在 Databricks Notebook 中调用集群 API 并启动集群?