首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL会话存储不起作用

PostgreSQL会话存储不起作用
EN

Stack Overflow用户
提问于 2022-07-22 16:23:02
回答 2查看 387关注 0票数 0

我正在使用直接PostgresSQL为我的Shopify应用程序设置Shopify文档会话存储

他们说要像这样设置会话存储:

代码语言:javascript
复制
import Shopify from '@shopify/shopify-api';

Shopify.Context.initialize({
  SESSION_STORAGE: new Shopify.Auth.Session.PostgreSQLSessionStorage("postgres://username:password@host/database"),
  ...
});

// OR

Shopify.Context.initialize({
  SESSION_STORAGE: Shopify.Auth.Session.PostgreSQLSessionStorage.withCredentials(
    "host.com",
    "thedatabase",
    "username",
    "password",
  ),
  ...
});

但是,当我设置它时,会遇到以下错误:

代码语言:javascript
复制
Property 'Session' does not exist on type '{ SESSION_COOKIE_NAME: string; beginAuth(request: IncomingMessage, response: ServerResponse, shop: string, redirectPath: string, isOnline?: boolean | undefined): Promise<...>; ... 4 more ...; getCurrentSessionId(request: IncomingMessage, response: ServerResponse, isOnline?: boolean | undefined): string | undefined; }'.ts(2339)
}

我的服务器崩溃是因为:TypeError: Cannot read properties of undefined (reading 'PostgreSQLSessionStorage')

我尝试过直接导入PostgreSQLSessionStorage以供使用,如下所示:

代码语言:javascript
复制
import { PostgreSQLSessionStorage } from "@shopify/shopify-api/dist/auth/session/index.js";

但这会遇到许多其他未定义的对象问题。

知道我哪里出问题了吗?

EN

回答 2

Stack Overflow用户

发布于 2022-08-01 00:28:37

你想过解决这个问题吗?移除奥斯让我更近了一点:

代码语言:javascript
复制
SESSION_STORAGE: new Shopify.Session.PostgreSQLSessionStorage(`${process.env.DATABASE_URL}?sslmode=require`),

但现在我得到了

代码语言:javascript
复制
2022-08-01T00:21:05.291801+00:00 app[web.1]: node:internal/process/promises:288
2022-08-01T00:21:05.291820+00:00 app[web.1]: triggerUncaughtException(err, true /* fromPromise */);
2022-08-01T00:21:05.291821+00:00 app[web.1]: ^
2022-08-01T00:21:05.291821+00:00 app[web.1]: 
2022-08-01T00:21:05.291822+00:00 app[web.1]: Error: self-signed certificate
2022-08-01T00:21:05.291823+00:00 app[web.1]: at TLSSocket.onConnectSecure (node:_tls_wrap:1534:34)
2022-08-01T00:21:05.291823+00:00 app[web.1]: at TLSSocket.emit (node:events:513:28)
2022-08-01T00:21:05.291823+00:00 app[web.1]: at TLSSocket._finishInit (node:_tls_wrap:948:8)
2022-08-01T00:21:05.291823+00:00 app[web.1]: at ssl.onhandshakedone (node:_tls_wrap:729:12) {
2022-08-01T00:21:05.291824+00:00 app[web.1]: code: 'DEPTH_ZERO_SELF_SIGNED_CERT'
2022-08-01T00:21:05.291824+00:00 app[web.1]: }
票数 0
EN

Stack Overflow用户

发布于 2022-10-03 04:41:58

好奇的汤姆解决方案也为我工作。要结束它,要从sqlite (原始shopify CLI db)切换到heroku postgresql,您必须:

  • 部署在heroku
  • 创建一个db
  • 在Heroku Config Var中添加"PGSSLMODE:不验证“
  • 在Heroku中获取数据库凭据
  • Shopify.Context.initialize中替换index.js中的代码行(请注意替换所有变量:用户名、密码、主机、数据库)。不包括"auth",而不是Shopify中显示的内容。
代码语言:javascript
复制
SESSION_STORAGE: new Shopify.Session.PostgreSQLSessionStorage("postgres://username:password@host/database")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73083363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档