这是一种安全的用户身份验证方法吗?如果是这样,是否可以简化以减少请求总数?
Is this a secure method for user authentication? If so, can it be simplified to reduce the total number of requests?
我一直在 Koa 中进行挖掘,并且有一个似乎工作正常的设置。然后我决定 SSR 是有益的,我正在努力创建一种简单的身份验证方法。
本质上我采取的步骤是:
- 用户访问 Next.JS 服务页面。
- 用户点击 "Login with facebook",一个请求被发送到我位于 /auth/facebook
的 Koa 服务器
- 发生带有通行证的 OAuth,并为用户生成并存储令牌(当时创建或更新)
- 生成了一个非常短暂的令牌,用户被重定向到 Next.JS 应用程序,该应用程序在 URL.
中具有短暂的令牌
- Next.JS 将这个短暂的令牌发送到 Koa API 并返回一个真实的访问令牌并存储在 cookie 中。
- 此新访问令牌用于对 API 的后续请求。
这感觉非常复杂,我觉得可以完全删除短期令牌步骤。
根据我的阅读,将 Next.JS 用于后端 API 相关逻辑并不是一个好主意,这就是为什么在 Koa-API 上进行身份验证的原因服务器,因此需要传递一个短暂的令牌来获得一个真正的令牌。
我是不是太复杂了?有没有我只是没看到的更简单的方法?
经过一番摆弄,我将其减少到只有几个请求。
我将 Passport.js 移动到自定义 Next.JS 服务器(使用 Koa)并将回调设置为目标 Next。然后我验证每个请求的令牌,因为它现在由 Next.JS 而不是我的 API 服务器存储,删除 4 和 5.
我一直在 Koa 中进行挖掘,并且有一个似乎工作正常的设置。然后我决定 SSR 是有益的,我正在努力创建一种简单的身份验证方法。
本质上我采取的步骤是:
- 用户访问 Next.JS 服务页面。
- 用户点击 "Login with facebook",一个请求被发送到我位于 /auth/facebook 的 Koa 服务器
- 发生带有通行证的 OAuth,并为用户生成并存储令牌(当时创建或更新)
- 生成了一个非常短暂的令牌,用户被重定向到 Next.JS 应用程序,该应用程序在 URL. 中具有短暂的令牌
- Next.JS 将这个短暂的令牌发送到 Koa API 并返回一个真实的访问令牌并存储在 cookie 中。
- 此新访问令牌用于对 API 的后续请求。
这感觉非常复杂,我觉得可以完全删除短期令牌步骤。
根据我的阅读,将 Next.JS 用于后端 API 相关逻辑并不是一个好主意,这就是为什么在 Koa-API 上进行身份验证的原因服务器,因此需要传递一个短暂的令牌来获得一个真正的令牌。
我是不是太复杂了?有没有我只是没看到的更简单的方法?
经过一番摆弄,我将其减少到只有几个请求。
我将 Passport.js 移动到自定义 Next.JS 服务器(使用 Koa)并将回调设置为目标 Next。然后我验证每个请求的令牌,因为它现在由 Next.JS 而不是我的 API 服务器存储,删除 4 和 5.