首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Relayjs Graphql用户身份验证

Relayjs Graphql用户身份验证
EN

Stack Overflow用户
提问于 2015-10-10 19:45:25
回答 1查看 2.2K关注 0票数 9

是否可以仅通过graphql服务器结合relay & react对不同角色的用户进行身份验证?

我环顾四周,找不到关于这个话题的太多信息。

在我目前的设置中,具有不同角色的登录功能仍然通过传统的REST API...(使用json web令牌“安全”)。

EN

回答 1

Stack Overflow用户

发布于 2015-10-11 02:36:24

我在我的一个应用程序中这样做了,基本上你只需要一个用户界面,如果没有人登录,这个界面会在第一个根查询中返回null,然后你可以通过传入凭据的登录变异来更新它。主要问题是在post中继请求中获取cookie或会话,因为它不处理请求中的cookie字段。

这是我的客户突变:

代码语言:javascript
复制
 export default class LoginMutation extends Relay.Mutation {
  static fragments = {
    user: () => Relay.QL`
      fragment on User {
        id,
        mail
      }
    `,
  };
  getMutation() {
    return Relay.QL`mutation{Login}`;
  }

  getVariables() {
    return {
      mail: this.props.credentials.pseudo,
      password: this.props.credentials.password,
    };
  }
  getConfigs() {
    return [{
      type: 'FIELDS_CHANGE',
      fieldIDs: {
        user: this.props.user.id,
      }
    }];
  }
  getOptimisticResponse() {
    return {
      mail: this.props.credentials.pseudo,
    };
  }
  getFatQuery() {
    return Relay.QL`
    fragment on LoginPayload {
      user {
        userID,
        mail
      }
    }
    `;
  }
}

下面是我的模式方面的变化

代码语言:javascript
复制
var LoginMutation = mutationWithClientMutationId({
  name: 'Login',
  inputFields: {
    mail: {
      type: new GraphQLNonNull(GraphQLString)
    },
    password: {
      type: new GraphQLNonNull(GraphQLString)
    }
  },
  outputFields: {
    user: {
      type: GraphQLUser,
      resolve: (newUser) => newUser
    }
  },
  mutateAndGetPayload: (credentials, {
    rootValue
  }) => co(function*() {
    var newUser = yield getUserByCredentials(credentials, rootValue);
    console.log('schema:loginmutation');
    delete newUser.id;
    return newUser;
  })
});

为了让我的用户在页面刷新过程中保持登录状态,我会发送自己的请求,并用cookie字段填充它……这是目前唯一能让它工作的方法。

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

https://stackoverflow.com/questions/33053617

复制
相关文章

相似问题

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