Flutter Flow开发的APP无法获取Auth Token但Postman可正常获取
问题分析与解决方案
你的核心问题在于Laravel接口返回的是纯文本格式的Token,但Flutter Flow的HTTP请求默认期望JSON格式响应,所以即便状态码是200,Flutter Flow也无法正确解析纯字符串,最终返回null。而Postman能正常显示纯文本,是因为它会自动识别响应格式并展示。
解决步骤
修改login方法的返回逻辑,将Token包装成JSON对象返回:
修改后的代码
public function login(Request $request) { try { $request->validate([ 'email' => 'required|email', 'password' => 'required', 'device_name' => 'required', ]); $user = User::where('email', $request->email)->first(); if (! $user || ! Hash::check($request->password, $user->password)) { throw ValidationException::withMessages([ 'email' => ['The provided credentials are incorrect.'], ]); } // 将Token包装为JSON对象返回 return response()->json([ 'success' => true, 'token' => $user->createToken($request->device_name)->plainTextToken, 'user' => $user // 可选:返回用户基本信息 ], 200); } catch (ValidationException $exception) { return response()->json([ 'success' => false, 'message' => $exception->getMessage(), 'errors' => $exception->errors(), ], 422); } catch (QueryException $exception) { return response()->json([ 'success' => false, 'message' => $exception->getMessage(), ], 500); } catch (Exception $exception) { return response()->json([ 'success' => false, 'message' => $exception->getMessage(), ], 500); } }
额外排查点
- 确认Flutter Flow的POST请求是否正确携带了
email、password、device_name三个参数,且参数名与后端校验规则一致 - 检查请求头是否设置了
Content-Type: application/json,确保请求体是JSON格式而非表单格式 - 查看Flutter Flow中对响应数据的解析逻辑,确保是从返回的JSON对象中提取
token字段
内容的提问来源于stack exchange,提问作者Kyle Mabaso
相关产品推荐
相关产品推荐

