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