vue.js 如何在弹出窗口中登录Twitch/Discord/Google,该窗口将访问令牌传递回网站并在不刷新的情况下登录用户?

mgdq6dx1  于 2023-10-23  发布在  Vue.js
关注(0)|答案(1)|浏览(130)

所以我想要的是,如果用户点击“使用Twitch登录”(或任何其他服务),一个新的窗口会弹出,并显示“授权”页面。当用户授权应用程序时,窗口关闭并将位于重定向url中的访问令牌作为参数传递回网站,并启动一个函数来登录用户而无需刷新网站。
我使用Nuxt和Express API服务器。
这里是一个网站,有这个登录程序,我想实现:https://mee6.xyz/

1mrurvl1

1mrurvl11#

我不熟悉Nuxt和Express API,但我可以解释你需要的任何东西。
你需要的是create popup window打开你的授权链接。
成功授权后弹出的窗口会将您重定向到redirect url,在那里您可以继续处理数据并使用您的服务器进行响应。
对于跨域请求,你不能访问你的子弹出窗口,但是你可以做的是在你的close current window (popup) on success位置发送html响应。下面是你需要做的事情的例子:
JavaScript

let url = 'your authorization link'
let params = 'popup window parameters'
let target = 'authorization target'

window.open(url, target, params)

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script>
    // Close this window (popup)
    window.close()
</script>
<body>

</body>
</html>

相关问题