Javascript 从回调路由在服务器上设定会话种子
正在尝试在Sapper中实现第三方oauth身份验证 据我所知,以下是建议的种子和同步模式 服务器和客户端上的会话存储:Javascript 从回调路由在服务器上设定会话种子,javascript,node.js,express,session,sapper,Javascript,Node.js,Express,Session,Sapper,正在尝试在Sapper中实现第三方oauth身份验证 据我所知,以下是建议的种子和同步模式 服务器和客户端上的会话存储: // In login.svelte <script> import { stores } from '@sapper/app'; const { session } = stores(); async function login() { const res = await fetch('auth', { ... });
// In login.svelte
<script>
import { stores } from '@sapper/app';
const { session } = stores();
async function login() {
const res = await fetch('auth', {
...
});
if (res.ok) {
session.update(store => ({
...store,
user: await res.json()
});
} else {
// handle the error
}
}
</script>
{#if $session.user}
<h1>Welcome back {$session.user.name}!</h1>
{:else}
<button on:click={login}>log in</button>
{/if}
在我的例子中,auth系统由第三方实现,而不是
对于API,它是一个网站重定向。用户被重定向到登录/注册
页面,并在成功登录时重定向到“回调”路由
在回调路由中,我需要设置会话和重定向,但是
您是使用默认的波尔卡服务器,还是切换到express?IIRC,polka没有在响应对象上提供
重定向
方法,因此必须显式重定向,请参见。切换到expression这真是奇怪。我在sapper应用程序中处理Spotify身份验证时做了一些非常类似的事情,在设置会话然后重定向时没有遇到问题。Spotify auth还使用回调和令牌系统。如果您仍然有问题,我很乐意与您分享我的代码。@ThomasHennes我也会为此麻烦您。您是使用默认的波尔卡服务器,还是切换到express?IIRC,polka没有在响应对象上提供重定向
方法,因此必须显式重定向,请参见。切换到expression这真是奇怪。我在sapper应用程序中处理Spotify身份验证时做了一些非常类似的事情,在设置会话然后重定向时没有遇到问题。Spotify auth还使用回调和令牌系统。如果您仍然有问题,我很乐意与您分享我的代码。@ThomasHennes我也会为此麻烦您。
// In auth.js
export function post(req, res) {
req.session.token = req.body.token;
res.end(JSON.stringify({ token: req.body.token }));
}
req.session.token = token;
res.redirect('/profile');
req.session.token = 'parsed.token.wrwerwe9rwer';
return next();