小编Jan*_*Jan的帖子

Next-Auth with Provider.Credentials:当 API 已经返回 JWT 令牌时如何实现?

    \n
  • 我有一个 NextJS 页面,我尝试在其中实现 Next-Auth。
  • \n
  • 我使用凭据登录我的 Rails API。
  • \n
  • 我的 API(已经)返回 JWT 令牌。(所以 NextAuth 不能创建它)
  • \n
\n

在这种情况下如何实现Provider.Credentialsfor呢?[...nextauth].js

\n

流程“图”\nNext request ---> Next API (with Next-Auth) ---> Rails API (returning Token)

\n

目前我有这些options

\n
 providers: [\n    CredentialsProvider({\n      name: \'Email\',\n      credentials: {\n        email: { label: "Email", type: "email", placeholder: "meine.email@domain.com" },\n        password: {  label: "Passwort", type: "password" }\n      },\n      async authorize(credentials) {\n\n        // The \'url\' is pointing to a Rails API endpoint which returns …
Run Code Online (Sandbox Code Playgroud)

rails-authorization jwt next-auth

14
推荐指数
2
解决办法
7119
查看次数

如何为nil捕获"未定义的方法`[]":NilClass"错误?

我通过omniauth从facebook获得一个嵌套数组,并想检查它是否为空?/ nil?/ exists?依赖行看起来像:

 unless omniauth['extra']['raw_info']['location']['name'].nil?
Run Code Online (Sandbox Code Playgroud)

这应该检查数组的这一部分是空的还是存在的.

但总是抛出这个错误:

undefined method `[]' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我检查数组错了吗?

我用"has_key""nil尝试了吗?" "空的?" "存在?" "空白?"

但这些都没有!

请帮帮我,非常感谢!

ruby ruby-on-rails

9
推荐指数
3
解决办法
1万
查看次数

哪些 Stripe webhook 确认订阅和产品付款?

Stripe API 相当强大。我发现,由于向后兼容性,存在一些网络钩子(即:计划、收费..)

\n

我的意图很“简单”:

\n

我的应用程序应该允许用户在成功支付订阅或产品费用后执行某些操作。我销售的有些东西是订阅,有些是“一次性”付款。

\n

我不知道应该使用哪些 webhook 并且不会错过任何付款。

\n

有:

\n
    \n
  • 发票已付
  • \n
  • 发票定稿
  • \n
  • payment_intent.succeeded
  • \n
  • 订单.付款_成功
  • \n
  • 结帐.会话.完成
  • \n
  • checkout.session.async_ payment_succeeded
  • \n
\n

当然还有一些支付失败时的回调:

\n
    \n
  • 发票.付款失败
  • \n
  • 发票.finalization_failed
  • \n
  • payment_intent. payment_failed
  • \n
  • checkout.session.async_ payment_failed
  • \n
  • 订单.付款失败
  • \n
  • ...
  • \n
  • ..
  • \n
\n

我目前的假设是

\n
    \n
  • 发票已付
  • \n
  • 发票.付款失败
  • \n
\n

可能是“正确的”钩子

\n

我的第二个假设是

\n
    \n
  • payment_intent. payment_failed
  • \n
  • payment_intent.succeeded
  • \n
\n

我的方向正确吗?

\n

编辑:

\n

我添加Webhooks的内容:

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n
网络钩子 …

stripe-payments

8
推荐指数
1
解决办法
2323
查看次数

Rubymine Thin含SSL选项

我可以使用THIN

bundle exec thin start --ssl --ssl-verify --ssl-key-file /private/etc/apache2/ssl/server.key --ssl-cert-file /private/etc/apache2/ssl/server.crt
Run Code Online (Sandbox Code Playgroud)

它完美地在控制台/终端中工作

但是当我尝试在"运行/调试配置" - >"编辑脚本参数"下将这些选项附加到rubymine中时,我得到:

/Users/jan/.rbenv/versions/1.9.3-p392/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)  /Users/jan/RubymineProjects/myapp/script/rails server thin -b 0.0.0.0 -p 3000 -e development --ssl-verify --ssl-key-file /private/etc/apache2/ssl/server.key --ssl-cert-file /private/etc/apache2/ssl/server.crt
/Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:33:in `parse!': invalid option: --ssl-verify (OptionParser::InvalidOption)
from /Users/jan/.gem/ruby/1.9.1/gems/rack-1.4.5/lib/rack/server.rb:283:in `parse_options'
from /Users/jan/.gem/ruby/1.9.1/gems/rack-1.4.5/lib/rack/server.rb:180:in `options'
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:54:in `set_environment'
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:42:in `initialize'
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:50:in `new'
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>'
from /Users/jan/RubymineProjects/myapp/script/rails:6:in `require'
from /Users/jan/RubymineProjects/myapp/script/rails:6:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)

完成退出代码1的流程任何人都可以帮助我们/我吗?

非常感谢!

ruby openssl thin rubymine ruby-on-rails-3

7
推荐指数
1
解决办法
2516
查看次数

Kubernetes大小定义:“ Gi”和“ G”有什么区别?

在探索Kubernetes模板的yaml定义时,我偶然发现了大小的不同定义。首先,我认为这与apiVersions有关,但它们是相同的。那有什么区别呢?两者相同时哪个正确?

storage: 5Gstorage: 5Gi

volumeClaimTemplates:
  - metadata:
      name: mongo-persistent-storage
    spec:
      resources:
        requests:
          storage: 2Gi
Run Code Online (Sandbox Code Playgroud)

详细请看这里:https : //github.com/cvallance/mongo-k8s-sidecar/blob/master/example/StatefulSet/mongo-statefulset.yaml

还有这个:

 volumeClaimTemplates:
 - metadata:
     name: mongo-persistent-storage
   spec:
     resources:
       requests:
         storage: 5G
Run Code Online (Sandbox Code Playgroud)

在这里详细:https : //github.com/openebs/openebs/blob/master/k8s/demo/mongodb/mongo-statefulset.yml

kubernetes

7
推荐指数
4
解决办法
5694
查看次数

同一后端服务中多条路径的 K8s Ingress 规则

我正在尝试设置入口负载平衡器。基本上,我有一个具有多个路径的后端服务。

假设我的后端 NodePort 服务名称是 hello-app。与此服务关联的 pod 公开多个路径,如 /foo 和 /bar。下面是例子

NodePort 服务和相关部署

    apiVersion: v1
    kind: Service
    metadata:
      name: hello-app
    spec:
      selector:
        app: hello-app
      type: NodePort
      ports:
        - protocol: "TCP"
          port: 7799
          targetPort: 7799
    ---
    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: hello-app
      labels:
        app: hello-app
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: hello-app
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          containers:
          - name: hello-app
            image: us.gcr.io/hello-app:latest
Run Code Online (Sandbox Code Playgroud)

现在提出如下请求,我面临 404 错误。

http://{ingress-address:port}/foo
http://{ingress-address:port}/bar
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下入口配置,但在这两种情况下都没有帮助。

入口配置 1

http://{ingress-address:port}/foo
http://{ingress-address:port}/bar
Run Code Online (Sandbox Code Playgroud)

入口配置 2

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata: …
Run Code Online (Sandbox Code Playgroud)

google-kubernetes-engine kubernetes-ingress

7
推荐指数
1
解决办法
1万
查看次数

NextJS process.env.NEXT_PUBLIC 变量在生产中为空

我有一个 NextJS“^11.1.2”应用程序,它在 Dockerfile 中构建并通过 CI/CD 部署到生产环境。但我的process.env变量没有渲染

我的客户端代码中有这个,应该在运行时呈现:

const PublicApiUrl = process.env.NEXT_PUBLIC_API_URL;

在我的(Gitlab)CI/CD Pipeline中,我还通过 AUTO_DEVOPS_BUILD_IMAGE_EXTRA_ARGS 添加了一些--build-args, 以及:ENVARG

AUTO_DEVOPS_BUILD_IMAGE_EXTRA_ARGS --build-arg=NEXT_PUBLIC_API_URL=https://my.api.com --build-arg=NEXT_PUBLIC_API_URL=https://my.api.com --build-arg=NEXT_PUBLIC_BUILDER_KEY=XXXXXX
NEXT_PUBLIC_API_URL=https://my.api.com
API_URL=https://my.api.com
Run Code Online (Sandbox Code Playgroud)

Dockerfile

ARG API_URL
ENV API_URL=$API_URL
ARG NEXT_PUBLIC_API_URL
ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
ARG NEXT_PUBLIC_BUILDER_KEY
ENV NEXT_PUBLIC_BUILDER_KEY=$NEXT_PUBLIC_BUILDER_KEY
RUN npm run build # which resolves in "build": "next build"
Run Code Online (Sandbox Code Playgroud)

下面的值肯定是被拾取的(我做了一个RUN env,可以看到变量在那里)。

这是我configMap在 Kubernetes 中将文件安装.env.local到容器中的情况:

ARG API_URL
ENV API_URL=$API_URL
ARG NEXT_PUBLIC_API_URL
ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
ARG NEXT_PUBLIC_BUILDER_KEY
ENV NEXT_PUBLIC_BUILDER_KEY=$NEXT_PUBLIC_BUILDER_KEY
RUN npm …
Run Code Online (Sandbox Code Playgroud)

gitlab-ci kubernetes dockerfile next.js

6
推荐指数
1
解决办法
2万
查看次数

如何在 NextJS 中将查询参数传递给重定向

当用户尝试访问未经身份验证的页面时,我将用户重定向到登录页面。

然后我想向他们展示一条消息。

但我无法在重定向中传递参数。导致问题的原因是什么以及如何正确解决?

// PAGE NEEDS AUTH / REDIRECT TO LOGIN WITH MESSAGE
// application
import { GetServerSideProps } from 'next';
import SitePageProducts from '../../components/site/SitePageProducts';

import axios from 'axios';

import { getSession } from 'next-auth/react';
import url from '../../services/url';
import { ProductFields } from '../../lib/ebTypes';

function Page() {
    return <SitePageProducts />;
}

export default Page;

export const getServerSideProps: GetServerSideProps = async (context) => {

    const session = await getSession(context)
    if (session) {

        const products = await axios.get(`${process.env.NEXT_PUBLIC_API_URL}/products`, {
        }).then(res => …
Run Code Online (Sandbox Code Playgroud)

server-side-rendering next.js

6
推荐指数
1
解决办法
1万
查看次数

转换区域/细分(从FIPS到ISO 3166,反之亦然)

我有两个数据库,一个是国家和分区(州/地区),另一个是城市.

问题是,他们使用不同的规范.

国家/地区分部提供:ISO 3166-2代码(数字和字符)和城市细分使用FIPS(仅限数字).

我在哪里或如何将它们匹配在一起?

有没有"Mappers?

德国示例:

细分:勃兰登堡

  • ISO 3166-2 - > BB
  • FIPS - > 11

示例数据集:

国家/细分:

{"alpha2"=>"DE",
 "alpha3"=>"DEU",
 "name"=>"Germany",
 "names"=>["Germany", "Deutschland", "Allemagne", "Alemania", "???", "Duitsland"],
 "number"=>"276",
 "subdivisions" => {
    "BB"=>{"name"=>"Brandenburg", "names"=>["Brandenbourg", "Brandenburgo"]},
    "BE"=>{"name"=>"Berlin", "names"=>["Berlín"]}, 
    "BW"=>{"name"=>"Baden-Württemberg", "names"=>["Baden-Württemberg", "Baden-Wurttemberg"]},
    "BY"=>{"name"=>"Bayern", "names"=>["Bavière", "Bayern", "Bavaria"]}, 
    "HB"=>{"name"=>"Bremen", "names"=>["Brème"]},
    "HE"=>{"name"=>"Hessen", "names"=>["Hessen", "Hesse"]},
    "HH"=>{"name"=>"Hamburg", "names"=>["Amburgo", "Hambourg", "Hamburgo"]},
    "MV"=>{"name"=>"Mecklenburg-Vorpommern", "names"=>["Mecklenburg-Vorpommern"]},
    "NI"=>{"name"=>"Niedersachsen", "names"=>["Niedersachsen"]},
    "NW"=>{"name"=>"Nordrhein-Westfalen", "names"=>["Nordrhein-Westfalen", "Rhénanie-Westphalie"]}, 
    "RP"=>{"name"=>"Rheinland-Pfalz", "names"=>["Rheinland-Pfalz", "Rhénanie-Palatinat"]},
    "SH"=>{"name"=>"Schleswig-Holstein", "names"=>"Schleswig-Holstein"}, 
    "SL"=>{"name"=>"Saarland", "names"=>"Saarland"},
    "SN"=>{"name"=>"Sachsen", "names"=>["Sachsen"]},
    "ST"=>{"name"=>"Sachsen-Anhalt", "names"=>"Sachsen-Anhalt"},
    "TH"=>{"name"=>"Thüringen", "names"=>["Thüringen", "Thuringen"]}}}

 {"alpha2"=>"AT",
 "alpha3"=>"AUT",
 "name"=>"Austria",
 "names"=>["Austria", "Österreich", …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails country-codes geo region

5
推荐指数
1
解决办法
655
查看次数

如何按特定对象键对数组中的值求和?

我有一个 js 对象数组,如下所示:

var objArr = [
     {"Country": "US", "City": "MyCity1", "2017-07-12": "1", "2017-07-13": "2"},
     {"Country": "US", "City": "MyCity2", "2017-07-12": "2", "2017-07-13": "2"},
     {"Country": "CN", "City": "MyCity1", "2017-07-12": "5", "2017-07-13": "7"},
     {"Country": "CN", "City": "MyCity2", "2017-07-12": "5", "2017-07-13": "7"}
   ]
Run Code Online (Sandbox Code Playgroud)

我想创建一个新数组,其中国家/地区是唯一的,但日期也应该相加。

{"Country": "US", "2017-07-12":  "3", "2017-07-13": "4"},
{"Country": "CN", "2017-07-12": "10", "2017-07-13": "14"}
            ^^^^                ^^^^                ^^^^   
Run Code Online (Sandbox Code Playgroud)

我很难理解它。我是否必须先过滤,以某种方式减少它,重新映射它,......我不知道从哪里开始?任何帮助将不胜感激,谢谢!

javascript arrays object filter ecmascript-6

5
推荐指数
1
解决办法
74
查看次数