首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有令牌的订阅图for (Absinthe)的授权

带有令牌的订阅图for (Absinthe)的授权
EN

Stack Overflow用户
提问于 2018-07-05 17:07:40
回答 2查看 617关注 0票数 0

我试图将身份验证添加到这个订阅测试中,因为我在运行Not Authorized时一直得到mix test。我已经看到您需要向push_doc函数添加一个登录突变,但我想知道。是否有任何方法只使用令牌进行身份验证,就像使用以下方法的常规突变:

代码语言:javascript
复制
conn =
      build_conn()
      |> put_req_header("authorization", @token)
      |> get("/api", query: @query)

    assert json_response(conn, 200) == %{
       "data" => %{
          "authors" => [%{"name" => "Jennifer"}]
       }
    }

这是我当前的订阅测试:

代码语言:javascript
复制
test "1. Subscribe to createAuthor", %{socket: socket} do

    # setup a subscription
    ref = push_doc(socket, @subscription)
    assert_reply(ref, :ok, %{subscriptionId: subscription_id})

    # run a mutation to trigger the subscription
    ref = push_doc(socket, @mutation)
    assert_reply(ref, :ok, reply)

    assert %{
         data: %{
           "createAuthor" => %{
             "name" => "Jennifer"
           }
         }
       } = reply

    # check to see if we got subscription data
    expected = %{
      result: %{
        data: %{
          "createAuthor" => %{
            "name" => "Jennifer"
          }
        }
      },
      subscriptionId: subscription_id
    }

    assert_push("subscription:data", push)
    assert expected == push
end

我的一般问题是。我只能将token (我已经硬编码了)传递到一个函数中来验证订阅吗?

EN

回答 2

Stack Overflow用户

发布于 2018-07-09 20:08:26

我设法按照以下方式进行了测试,使用put_req_header()进行了突变

代码语言:javascript
复制
test "1. Subscribe to createAuthor", %{socket: socket} do
    # setup a subscription
    ref = push_doc(socket, @subscription)
    assert_reply(ref, :ok, %{subscriptionId: subscription_id})

    # run a mutation to trigger the subscription
    conn =
      post(
        build_conn()
        |> put_req_header("authorization", @token),
        "/api",
        query: @mutation
      )

    assert json_response(conn, 200) == %{
             "data" => %{
               "createAuthor" => %{
                 "name" => "Jennifer"
               }
             }
           }

    # check to see if we got subscription data
    expected = %{
      result: %{
        data: %{
          "createAuthor" => %{
            "name" => "Jennifer"
          }
        }
      },
      subscriptionId: subscription_id
    }

    assert_push("subscription:data", push)
    assert expected == push
  end
票数 0
EN

Stack Overflow用户

发布于 2019-07-07 22:51:34

你可以用你的钥匙签名,在一百年内做一个到期的令牌。硬编码,这是好的永远只要你使用相同的SK。

你要在你的代币前加上“比勒”吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51196724

复制
相关文章

相似问题

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