gpt4 book ai didi

api - 多个用户的 OAuth2 客户端身份验证

转载 作者:行者123 更新时间:2023-12-05 03:05:26 28 4
gpt4 key购买 nike

我在 FileMaker 中构建了一个房间预订应用程序,它通过日历 API 访问 Google 日历,并使用 OAuth2 进行身份验证。

除了我不确定 OAuth2 客户端 token 流与将使用该系统的各个 FileMaker/GCal 用户之间的关系外,一切都运行良好。

目前,我既是 Google Developer Console 项目的所有者,也是唯一的 Beta 测试人员,所以系统自然会使用我的日历 - 我登录一次,将我的 ClientID 和 Secret 传递给 OAuth2,生成我的代码,将其交换为 token 并刷新,然后我就离开了。

但是,目前整个系统只有 一个 Token 和 Refresh,保存在单行 FileMaker 表中,因此,当我创建第二个测试用户时,事情仍然转发到我的日历。

这是我不清楚的地方。这听起来很明显,但很难找到明确的答案。

我是否应该让每个用户使用相同的 ClientID 和 Secret(我对他们保密)来生成他们自己独特的 token 集?

或者单组就足够了,我误解了系统的其他方面(如果是的话,是什么)?

简而言之: token 是每个应用程序还是每个应用程序用户?

最佳答案

回答我自己的问题:

客户(= 应用程序)的资料

Client ID:属于应用程序,对所有用户通用

Client Secret:属于应用程序,对所有用户通用

重定向 URI:属于应用程序,对所有用户通用

用户资料

授权码:特定于每个用户,需要客户端 ID 和客户端密码,并在用户使用第三方服务进行身份验证后作为 GET 变量从重定向 URL 中检索(例如 http://YourRedirectURI.com?code=abc123 )

Refresh Token:特定于每个用户,需要Client ID和Authorization Code

Access Token:针对每个用户,需要Client ID和Refresh Token,并且有时间限制(一般1小时),过期需要重新生成一个

NB 用户不应该看到客户端 key (或者最好是客户端 ID)。它们应该在应用程序的内部逻辑中使用,以生成对用户代码/ token 的调用,但他们看不到。

OAUTH2 流程

因此,本质上 OAuth2“流程”如下:

1) 您的客户端 ID + 您的客户端密码 + 他们对第 3 方服务的身份验证登录 = 该特定用户的身份验证代码作为重定向 URI 中的 GET var

2) 您的客户端 ID + 您的客户端密码 + 他们的身份验证代码 = 刷新 token 和访问 token

3) 您的客户端 ID + 您的客户端密码 + 他们的刷新 token = 新访问 token

关于api - 多个用户的 OAuth2 客户端身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50992380/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com