具有 Firebase 功能的 Discord oauth2
Discord oauth2 with Firebase functions
我正在尝试使用 Firebase 在我的 React 应用程序中实施 Discord 身份验证。我偶然发现了这个 answer,它建议调用一个重定向到 Discord 身份验证流程的 Firebase 函数(您需要在其中单击 'Authorize')。
我希望它的行为与使用 Google 流程的 Firebase 登录相同。所以像这样:
- 用户点击了显示 'Sign in with Discord'
的按钮
- 在 Discord 要求授权的地方打开一个弹出窗口
- 用户通过单击弹出窗口中的按钮进行授权
- 弹出窗口关闭,用户现在已登录
如何从我的 React 应用程序触发 Firebase 函数(可能是 HTTPS 函数?),以便它打开一个弹出窗口?我已经尝试在前端使用 Firebase 的 HttpsCallable 来触发调用 response.redirect(discordAuthRedirectLink) 的 Firebase 函数,但这只会触发该函数(它不会打开弹出窗口或重定向)。
您无法直接从服务器在客户端中打开弹出窗口(这将是一个主要的安全问题),但您的 Cloud Function 可以 return 您的客户端代码随后解释的值,并且打开一个弹出窗口作为响应。
在这样的登录流程中必须执行多次调用(对多项服务)是很常见的,所以我不会在早期担心太多。
我正在尝试使用 Firebase 在我的 React 应用程序中实施 Discord 身份验证。我偶然发现了这个 answer,它建议调用一个重定向到 Discord 身份验证流程的 Firebase 函数(您需要在其中单击 'Authorize')。
我希望它的行为与使用 Google 流程的 Firebase 登录相同。所以像这样:
- 用户点击了显示 'Sign in with Discord' 的按钮
- 在 Discord 要求授权的地方打开一个弹出窗口
- 用户通过单击弹出窗口中的按钮进行授权
- 弹出窗口关闭,用户现在已登录
如何从我的 React 应用程序触发 Firebase 函数(可能是 HTTPS 函数?),以便它打开一个弹出窗口?我已经尝试在前端使用 Firebase 的 HttpsCallable 来触发调用 response.redirect(discordAuthRedirectLink) 的 Firebase 函数,但这只会触发该函数(它不会打开弹出窗口或重定向)。
您无法直接从服务器在客户端中打开弹出窗口(这将是一个主要的安全问题),但您的 Cloud Function 可以 return 您的客户端代码随后解释的值,并且打开一个弹出窗口作为响应。
在这样的登录流程中必须执行多次调用(对多项服务)是很常见的,所以我不会在早期担心太多。