Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从回调路由在服务器上设定会话种子_Javascript_Node.js_Express_Session_Sapper - Fatal编程技术网

Javascript 从回调路由在服务器上设定会话种子

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', { ... });

正在尝试在Sapper中实现第三方oauth身份验证

据我所知,以下是建议的种子和同步模式 服务器和客户端上的会话存储:

// 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,它是一个网站重定向。用户被重定向到登录/注册 页面,并在成功登录时重定向到“回调”路由

在回调路由中,我需要设置会话和重定向,但是

  • 如果我设置了req.session和res.redirect会话 没有准备好
  • 如果我设置了req.session,然后设置了call next()session 但无法重定向到预期的“配置文件”页面

  • 您是使用默认的波尔卡服务器,还是切换到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();