Authentication 颤振/飞镖基于用户登录令牌从API获取图像/数据

Authentication 颤振/飞镖基于用户登录令牌从API获取图像/数据,authentication,flutter,dart,Authentication,Flutter,Dart,我试图从我自己用laravel制作的Api中检索一些数据和图像。在显示图像之前,图像需要身份验证令牌。我不知道为什么图像不能显示。我需要一些帮助。我需要使用以下端点(/api/card)获取用户卡映像 方法是GET,需要JWT令牌 我尝试使用if-else的情况下,如果用户成功登录它将重定向到会员卡页面不幸的是,它仍然显示401身份验证401失败错误 import 'dart:convert'; import 'package:flutter/material.dart'; import 'pa

我试图从我自己用laravel制作的Api中检索一些数据和图像。在显示图像之前,图像需要身份验证令牌。我不知道为什么图像不能显示。我需要一些帮助。我需要使用以下端点(/api/card)获取用户卡映像 方法是GET,需要JWT令牌

我尝试使用if-else的情况下,如果用户成功登录它将重定向到会员卡页面不幸的是,它仍然显示401身份验证401失败错误

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:_membership/Login_page.dart';
import 'package:_membership/homeScreen.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:http/http.dart' as http;
import 'saveCurrentLogin.dart';



class GetMemberCard extends StatefulWidget {

  @override
  _GetMemberCardState createState() => _GetMemberCardState();
}

class _GetMemberCardState extends State<GetMemberCard> {
  bool _isLoggedIn = false;

  @override
  void initState() {
    _checkIfLoggedIn();
    super.initState();
  }
  void _checkIfLoggedIn() async{
    // check if token is there
    SharedPreferences localStorage = await SharedPreferences.getInstance();
    var token = localStorage.getString('token');
    if(token!= null){
      setState(() {
        _isLoggedIn = true;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: _isLoggedIn ? HomeScreen() :  CardHome(),
      ),

    );
  }
}


class CardHome extends StatefulWidget {
  @override
  _CardHomeState createState() => _CardHomeState();
}

class _CardHomeState extends State<CardHome> {
  var userData;

  @override
  void initState() {
    _getUserInfo();
    super.initState();
  }

  void _getUserInfo() async {
    SharedPreferences localStorage = await SharedPreferences.getInstance();
    var userJson = localStorage.getString('user');
    var user = json.decode(userJson);
    setState(() {
      userData = user;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: Colors.grey[200],
        body: Container(
            width: 200,
            height: 200,
            child: Image.network(userData != null ? '${userData['token']}' : 'https://example/api/card',

            )));
  }




}
导入'dart:convert';
进口“包装:颤振/材料.省道”;
导入“package:_membership/Login_page.dart”;
导入“包:_会员/主屏幕.dart”;
导入“package:shared_preferences/shared_preferences.dart”;
将“package:http/http.dart”导入为http;
导入“saveCurrentLogin.dart”;
类GetMemberCard扩展StatefulWidget{
@凌驾
_GetMemberCardState createState()=>GetMemberCardState();
}
类_GetMemberCardState扩展了状态{
boolu isLoggedIn=false;
@凌驾
void initState(){
_checkIfLoggedIn();
super.initState();
}
void\u checkIfLoggedIn()异步{
//检查是否有代币
SharedReferences localStorage=等待SharedReferences.getInstance();
var token=localStorage.getString('token');
if(令牌!=null){
设置状态(){
_isLoggedIn=真;
});
}
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
debugShowCheckedModeBanner:false,
家:脚手架(
正文:_isLoggedIn?主屏幕():CardHome(),
),
);
}
}
类CardHome扩展了StatefulWidget{
@凌驾
_CardHomeState createState();
}
类_CardHomeState扩展状态{
var用户数据;
@凌驾
void initState(){
_getUserInfo();
super.initState();
}
void\u getUserInfo()异步{
SharedReferences localStorage=等待SharedReferences.getInstance();
var userJson=localStorage.getString('user');
var user=json.decode(userJson);
设置状态(){
用户数据=用户;
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:颜色。灰色[200],
主体:容器(
宽度:200,
身高:200,
子项:Image.network(userData!=null?'${userData['token']}':'https://example/api/card',
)));
}
}
错误日志已附加

Performing hot reload...
Syncing files to device Android SDK built for x86...
Reloaded 35 of 732 libraries in 483ms.
E/flutter (22764): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: NoSuchMethodError: The getter 'length' was called on null.
E/flutter (22764): Receiver: null
E/flutter (22764): Tried calling: length
E/flutter (22764): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
E/flutter (22764): #1      _parseJson (dart:convert-patch/convert_patch.dart:28:28)
E/flutter (22764): #2      JsonDecoder.convert (dart:convert/json.dart:493:36)
E/flutter (22764): #3      JsonCodec.decode (dart:convert/json.dart:151:41)
E/flutter (22764): #4      _CardHomeState._getUserInfo (package:pkc/pkc_membership/membership_card.dart:66:21)
E/flutter (22764): <asynchronous suspension>
E/flutter (22764): #5      _CardHomeState.initState (package:pkc/pkc_membership/membership_card.dart:59:5)
E/flutter (22764): #6      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4068:58)
E/flutter (22764): #7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:3919:5)
E/flutter (22764): #8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3101:14)
E/flutter (22764): #9      Element.updateChild (package:flutter/src/widgets/framework.dart:2904:12)
E/flutter (22764): #10     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3961:16)
E/flutter (22764): #11     Element.rebuild (package:flutter/src/widgets/framework.dart:3738:5)
E/flutter (22764): #12     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3924:5)
E/flutter (22764): #13     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3919:5)
E/flutter (22764): #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3101:14)
E/flutter (22764): #15     Element.updateChild (package:flutter/src/widgets/framework.dart:2904:12)
E/flutter (22764): #16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3961:16)
E/flutter (22764): #17     Element.rebuild (package:flutter/src/widgets/framework.dart:3738:5)
E/flutter (22764): #18     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3924:5)
E/flutter (22764): #19     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3919:5)
E/flutter (22764): #20     ParentDataElement.mount (package:flutter/src/widgets/framework.dart:4314:11)
E/flutter (22764): #21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3101:14)
E/flutter (22764): #22     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5233:32)
E/flutter (22764): #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3101:14)
E/flutter (22764): #24     Element.updateChild (package:flutter/src/widgets/framework.dart:2904:12)
E/flutter (22764): #25     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3961:16)
E/flutter (22764): #26     Element.rebuild (package:flutter/src/widgets/framework.dart:3738:5)
E/flutter (22764): #27     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3924:5)
E/flutter (22764): #28     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4088:11)
E/flutter (22764): #29     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3919:5)
E/flutter (22764): #30     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3101:14)
E/flutter (22764): #31     Element.updateChild (package:flutter/src/widgets/framework.dart:2904:12)
E/flutter (22764): #32     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3961:16)
E/flutter (22764): #33     Element.rebuild (package:flutter/src/widgets/framework.dart:3738:5)
E/flutter (22764): #34     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3924:5)
E/flutter (22764): #35     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3919:5)
E/flutter (22764): #36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3101:14)
E/flutter (22764): #37     Element.updateChild (package:flutter/src/widgets/framework.dart:2904:12)
E/flutter (22764): #38     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3961:16)
E/flutter (22764): #39     Element.rebuild (package:flutter/src/widgets/framework.dart:3738:5)
E/flutter (22764): #40     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3924:5)
E/flutter (22764): #41     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4088:11)
E/flutter (22764): #42     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3919:5)
E/flutter (22764): #43     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3101:14)
E/flutter (22764): #44     Element.updateChild (package:flutter/src/widgets/framework.dart:2904:12)
E/flutter (22764): #45     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5127:14)
E/flutter (22764): #46     Element.inflateWidget (packag
正在执行热重新加载。。。
正在将文件同步到为x86构建的Android SDK设备。。。
在483毫秒内重新加载732个库中的35个。
E/flatter(22764):[ERROR:flatter/lib/ui/ui\u dart\u state.cc(148)]未处理的异常:NoSuchMethodError:对null调用了getter“length”。
E/颤振(22764):接收器:空
E/颤振(22764):尝试呼叫:长度
E/颤振(22764):#0 Object.noSuchMethod(dart:core patch/Object_patch.dart:51:5)
E/flatter(22764):#1 parseJson(dart:convert patch/convert_patch.dart:28:28)
E/flatter(22764):#2 JsonDecoder.convert(dart:convert/json.dart:493:36)
E/flatter(22764):#3jsoncodec.decode(dart:convert/json.dart:151:41)
E/flatter(22764):#4"卡主页。"获取用户信息(包装:pkc/pkc"会员/会员卡。dart:66:21)
E/颤振(22764):
E/flatter(22764):#5#CardHomeState.initState(包装:pkc/pkc_会员卡/会员卡。dart:59:5)
E/flatter(22764):#6 StatefulElement._firstBuild(包:flatter/src/widgets/framework.dart:4068:58)
E/flatter(22764):#7 ComponentElement.mount(包:flatter/src/widgets/framework.dart:3919:5)
E/flatter(22764):#8 Element.inflateWidget(包:flatter/src/widgets/framework.dart:3101:14)
E/flatter(22764):#9 Element.updateChild(包:flatter/src/widgets/framework.dart:2904:12)
E/flatter(22764):#10 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:3961:16)
E/flatter(22764):#11 Element.rebuild(包:flatter/src/widgets/framework.dart:3738:5)
E/flatter(22764):#12个组件元素。_firstBuild(包:flatter/src/widgets/framework.dart:3924:5)
E/flatter(22764):#13 ComponentElement.mount(包:flatter/src/widgets/framework.dart:3919:5)
E/flatter(22764):#14 Element.inflateWidget(包:flatter/src/widgets/framework.dart:3101:14)
E/flatter(22764):#15 Element.updateChild(包:flatter/src/widgets/framework.dart:2904:12)
E/flatter(22764):#16 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:3961:16)
E/flatter(22764):#17 Element.rebuild(包:flatter/src/widgets/framework.dart:3738:5)
E/flatter(22764):#18组件元素。_firstBuild(包:flatter/src/widgets/framework.dart:3924:5)
E/flatter(22764):#19 ComponentElement.mount(包:flatter/src/widgets/framework.dart:3919:5)
E/flatter(22764):#20 ParentDataElement.mount(包:flatter/src/widgets/framework.dart:4314:11)
E/flatter(22764):#21 Element.inflateWidget(包:flatter/src/widgets/framework.dart:3101:14)
E/flatter(22764):#22 multi-childrenderobjectelement.mount(包:flatter/src/widgets/framework.dart:5233:32)
E/flatter(22764):#23 Element.inflateWidget(包:flatter/src/widgets/framework.dart:3101:14)
E/flatter(22764):#24 Element.updateChild(包:flatter/src/widgets/framework.dart:2904:12)
E/flatter(22764):#25 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:3961:16)
E/flatter(22764):#26 Element.rebuild(包:flatter/src/widgets/framework.dart:3738:5)
E/flatter(22764):#27组件元素。_firstBuild(包:flatter/src/widgets/framework.dart:3924:5)
E/flatter(22764):#28 StatefulElement._firstBuild(包:flatter/src/widgets/framework.dart:4088:11)
E/flatter(22764):#29 ComponentElement.mount(包:flatter/src/widgets/framework.dart:3919:5)
E/flatter(22764):#30 Element.inflateWidget(包:flatter/src/widgets/framework.dart:3101:14)
E/颤振