我正在try 通过一种GraphQL变异来清除用户会话,该变异以user_id为参数,销毁用户会话并发送一条消息,该消息将进一步被前端用来注销.
argument :user_id, ID, required: true
field :message, String, null: true
def resolve(user_id:)
user = User.find_by(id: user_id)
raise GraphQL::ExecutionError, 'User not found.' unless user.present?
destroy_user_session(user_id)
user.save!
{ message: 'User session cleared'}
end
private
def destroy_user_session(user_id)
binding.pry
session = context[:session]
session.clear
raise GraphQL::ExecutionError, 'Failed to clear session.' unless session.empty?
end
end
但问题是,用户会话在这里没有被正确销毁.我正在使用localhost:3000/api/graphql
测试它,其中我首先调用Mutations ,然后调用一些其他查询,这些查询在用户登录后可以访问,不幸的是,这两个查询都被调用,而不是抛出像authorization is requried
这样的错误.我从不同的站点try 了几个步骤,但仍然被困在这里.