小编Yam*_*ama的帖子

Rails + Graphql 和身份验证混乱

我对使用 GraphQL 设置 current_user 有点困惑。因此,我在 Restful 应用程序中完成此操作的方法是让用户控制器在创建用户时登录用户,如下所示

  def create
    @user = User.new(user_params)

    if @user.save
      login(@user)
      render :show
    else
      render json: @user.errors.messages, status: 422
    end
  end
Run Code Online (Sandbox Code Playgroud)

我在应用程序控制器中有登录(用户)方法,它的作用基本上是将用户设置为 current_user helper_method 并分配一个会话令牌,如下所示

  protect_from_forgery with: :exception

  helper_method :current_user

  def login(user)
    @current_user = user
    session[:session_token] = user.reset_session_token!
  end

  def logout
    current_user.reset_session_token!
    session[:session_token] = nil
  end

  def logged_in?
    !!current_user
  end

  def current_user
    @current_user ||= User.find_by(session_token: session[:session_token])
  end
Run Code Online (Sandbox Code Playgroud)

我想我真正的问题是我应该如何让 current_user 出现在我的 GraphQL 控制器上下文中?我正在使用“graphql”gem,它为我创建了一个 graphQL 控制器,但仍然困惑我应该如何实现它。当创建新用户时,其输出是

[["username", "elyy"], ["email", "kelly@kelly.com"], ["password_digest", "$2a$10$ATfHgklNx0bED7N9JCQfHuHjNF/sJ5AcwkOzMOqX7sPLdgAREcHd6"], ["created_at", "2018-10-21 01:46:06.913393"], ["updated_at", "2018-10-21 01:46:06.913393"], …
Run Code Online (Sandbox Code Playgroud)

authentication ruby-on-rails graphql

5
推荐指数
0
解决办法
1017
查看次数

使用 Supertest 时收到 500“内部服务器错误”

因此,我过去从未在我的所有项目中实际实施过任何测试,并决定开始在我正在开发的新项目中实施它。作为一个完全的初学者,我对得到的输出有点困惑。

当我使用邮递员时。它不会返回 500 错误,而是将信息保存到后端。运行测试时遇到的错误是

1) POST /users
       Creates a new user:
     Error: expected 200 "OK", got 500 "Internal Server Error"
Run Code Online (Sandbox Code Playgroud)

我还将展示我的代码是什么样子,以便希望找出我出错的地方。

// 测试

var express = require("express");
var request = require("supertest");
var app = express();
let router = require("../../server/routes/api/users");

app.use(router);

describe("GET /test", function() {
  it("Returns a json for testing", function(done) {
    request(app)
      .get("/test")
      .set("Accept", "application/json")
      .expect("Content-Type", /json/)
      .expect(200, done);
  });
});

describe("POST /users", () => {
  let data = {
    name: "dummy",
    email: "dummy@dummy.com",
    password: 123456
  };

  it("Creates a new …
Run Code Online (Sandbox Code Playgroud)

testing mocha.js node.js chai supertest

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

不理解我在数组中遇到的错误

我是 PHP 新手,希望人们能帮助我获得更好的见解。我正在尝试解决我在 JS 到 PHP 中遇到的问题,以更好地理解语法,但遇到了这个错误:

PHP 致命错误:未捕获的 TypeError:传递给 Serializer::serializeArray() 的参数 1 必须是数组类型,给定 null,在 /leetcode/precomiled/serializer.php 中调用

这是我的代码。我希望有人能告诉我我做错了什么,以便更好地理解并避免进一步的 PHP 错误。感谢所有回答的人。

class Solution {
    function twoSum($nums, $target) {
        $collection = array();

        foreach($nums as $key => $num) {
            $subtracted = $target - $num;

            if ($collection[$subtracted]) {
                return array($collection[$subtracted], $key);  
            } else {
                $collection[$num] = $key;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

php

4
推荐指数
1
解决办法
3337
查看次数