Laravel 使用 oauth2 申请表格 - 概念问题

Posted

技术标签:

【中文标题】Laravel 使用 oauth2 申请表格 - 概念问题【英文标题】:Laravel apply form with oauth2 - conceptional question 【发布时间】:2021-03-04 23:48:47 【问题描述】:

我尝试构建一个申请表,您必须在提交申请后与 discord oauth2 连接。所以我已经设置了整个 oauth,我可以制作一个按钮,您可以在其中连接不和谐,然后填写您的表格。但我想用同一个按钮提交表单和 oauth 请求。现在我面临的问题是,我无法通过 oauth 请求传递其他数据。

我的“应用程序”表有 id、discord_id 和表单数据列。所以我的第一个想法是只存储表单数据并重定向到不和谐的 oauth 页面,然后返回到控制器并添加 id。问题是,我无法将其他数据传递给 oauth,因此我无法正确分配用户不和谐 id。

也许你们有任何想法或已经使用过 discord oauth2。

谢谢

【问题讨论】:

【参考方案1】:

听起来您正在获得 OAuth2 授权代码授权。

Discord 的开发者网站有一个指导here。

关于它如何运作的基本想法如下:

    用户单击“与 Discord 连接”按钮,该按钮会将用户重定向到 Discord 的授权 URL,其中包含您的开发者应用程序客户端 ID 和范围 用户在 Discord 网站的登录页面中输入他们的详细信息并点击登录 在通过 Discord 进行身份验证后,用户需要批准您的应用才能访问他们在 Discord 中的个人资料信息 一旦获得批准,Discord 会将用户重定向回您的网站并通过 GET 传递授权码 然后,您的网站向 Discord 发出单独的请求(来自服务器)以请求授权令牌,然后您可以使用该令牌从 Discord 请求用户的信息

您提到您正在使用 Laravel,我强烈建议您查看 Laravel Socialite,它将为您处理很多此类逻辑。

然后您可以使用Discord Socialite Provider 专门处理 Discord 的逻辑。

【讨论】:

您好,谢谢您的回答。我已经完成了整个 discord oauth 部分的工作。我面临的唯一问题是,如何将表单数据传递给我的控制器,然后重定向到不和谐并返回,获取用户信息并将其与表单中的数据一起存储。社交名流也没有包含不和谐的驱动程序。所以我只需要获取一次用户的不和谐ID,所以使用整个包对我来说似乎有点太多了。

以上是关于Laravel 使用 oauth2 申请表格 - 概念问题的主要内容,如果未能解决你的问题,请参考以下文章

Oauth2-server-laravel 自定义消息响应

在 laravel5.8 中来自 guzzle 的 oauth2 访问密钥请求

Laravel OAuth2 Passport API,生成令牌但无法发出请求:“未经身份验证”

laravel 5.5 oauth2.0 跨域问题解决方案

laravel oauth2.0 文件上传报错

OAuth2.0流程