Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用AuthController传递用户id_Flutter_Dart_Aqueduct - Fatal编程技术网

Flutter 使用AuthController传递用户id

Flutter 使用AuthController传递用户id,flutter,dart,aqueduct,Flutter,Dart,Aqueduct,我刚刚制作了一个简单的身份验证应用程序,使用aqueduct作为后端。我使用渡槽文档页面中的代码进行登录和注册。当我在后台使用此代码登录时 router .route('/auth/token') .link(() => AuthController(authServer)); 我取回令牌、令牌类型和到期日期,是否有机会也传递userId?或者我必须创建自己的控制器才能做到这一点 更新 或者,在保存数据时,如何在后端保存用户id @Operation.post()

我刚刚制作了一个简单的身份验证应用程序,使用aqueduct作为后端。我使用渡槽文档页面中的代码进行登录和注册。当我在后台使用此代码登录时

 router
    .route('/auth/token')
    .link(() => AuthController(authServer));
我取回令牌、令牌类型和到期日期,是否有机会也传递userId?或者我必须创建自己的控制器才能做到这一点

更新 或者,在保存数据时,如何在后端保存用户id

  @Operation.post()
  Future<Response> addData(@Bind.body(ignore: ['id']) Data newData) async {
    final query = Query<Data>(context)..values = newData;
    final insertData = await query.insert();
    return Response.ok(insertData);
  }
@Operation.post()
Future addData(@Bind.body(忽略:['id'])Data newData)异步{
最终查询=查询(上下文)…值=新数据;
final insertData=wait query.insert();
返回Response.ok(insertData);
}
颤振前端 最初使用用户名/电子邮件和密码登录。如果用户名和密码有效,您将从服务器获得授权令牌。然后使用该令牌向服务器发出进一步的特权请求

您不需要在客户端上保存有关用户的任何个人数据(电子邮件或密码)。不过,如果您不想让用户下次使用应用程序时再次登录,您可以保存令牌。保存令牌时,应使用安全存储选项。该插件在iOS和Android上使用

渡槽后端 您可以在后端使用所有需要的用户ID。不过,我不知道是否有必要将它们传递给客户。在后端,您可以查询用户ID,然后使用它从数据库中获取其他信息

以下是来自以下方面的示例:

相当于

where((p) => p.author.id).equalTo(forUserID)

您可以在文档的一节中了解这一点。

为什么需要传回用户id?@Suragch只是为了保护用户数据。从aqueduct文档中,我们可以在后端
where((p)=>p.author.identifiedBy(forUserID)
中使用此代码保护数据,因此我认为在创建数据时,我们还必须使用它们保存用户id。。因此,我想在前端使用userId将其与我看到的数据一起保存。。请帮我再了解一件事。。因此,如果我从前端发送请求,将一些数据保存在db表中,那么我如何在后端通知保存用户id,以使数据对该用户是私有的?这在文档中并没有真正解释,这就是为什么我有点困惑我读过关于查询的那部分我只是不知道如何保存它以便我们可以查询它。。看看我最新的问题。或者这是否意味着数据表不需要任何包含该信息的列?@delmin这看起来是个新问题。我宁愿每个答案只回答一个问题。你能提出一个新问题吗?我明天再看。
where((p) => p.author).identifiedBy(forUserID)
where((p) => p.author.id).equalTo(forUserID)