Hasura和Auth0-设置自定义声明

问题描述

Hasura tutorial之后,我添加了以下操作:

function (user,context,callback) {
  const namespace = "https://hasura.io/jwt/claims";
  context.accessToken[namespace] =
    {
      'x-hasura-default-role': 'user',// do some custom logic to decide allowed roles
      'x-hasura-allowed-roles': ['user'],'x-hasura-user-id': user.user_id
    };
  callback(null,user,context);
}

我不遵循“做一些自定义逻辑来决定允许的角色”的评论-我将如何添加这样的自定义逻辑?

我想必须签署表单,一个表单将在系统中创建“用户”,另一个表单将创建“管理员”,但是尚不清楚文档应如何实现。

我是否需要将用户类型存储在Hasura数据库中,然后在登录时使用上述操作查询用户数据库并为用户分配适当的规则?

在哪种情况下,我该如何区分某人注册成为管理员或用户的方式? Hasura文档中的“同步用户”操作不能解释如何区分用户?

function (user,callback) {
  const userId = user.user_id;
  const nickname = user.nickname;
  
  const admin_secret = "xxx";
  const url = "yyyyy";
  const query = `mutation($userId: String!,$nickname: String) {
    insert_users(objects: [{
      id: $userId,name: $nickname
    }],on_conflict: {constraint: users_pkey,update_columns: [last_seen,name]}
    ) {
      affected_rows
    }
  }`;
  const variables = { "userId": userId,"nickname": nickname };
  request.post({
      url: url,headers: {'content-type' : 'application/json','x-hasura-admin-secret': admin_secret},body: JSON.stringify({
        query: query,variables: variables
      })
  },function(error,response,body){
       console.log(body);
       callback(null,context);
  });
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)