使用 JwtSessionHandler 时出现类型错误 - dart
Type Error when using JwtSessionHandler - dart
我在使用 JwtSessionHandler 时遇到了飞镖类型的问题。我想使用 this example application from the shelf_auth git 存储库作为指南来集成用户身份验证和会话。
不幸的是,我在 运行 应用程序时遇到错误(在 运行 应用程序之前未检测到语法错误)
错误信息如下:
Breaking on exception: object of type _TypeError: type '(String, String) => Future<UserLookupByUsernamePassword<Principal>>' is not a subtype of type 'UserLookupByUsernamePassword' of 'userLookup'.
错误源于这行代码
var sessionHandler = new JwtSessionHandler('super app',new Uuid().v4(),testLookup.lookupByUsernamePassword);
准确地说是 JwtSessionHandler
的最后一个输入参数
testLookup.lookupByUsernamePassword
。 testLookup
由 var testLookup = new TestUserLookup();
定义
哪里
class TestUserLookup {
Future<Option<Principal>> lookupByUsernamePassword(String username, String password) {
final validUser = username == 'fred';
final principalOpt = validUser ? new Some(new Principal(username)) : const None();
return new Future.value(principalOpt);
}
Future<Option<Principal>> lookupByUsername(String username) {
final validUser = username == 'fred';
final principalOpt = validUser ? new Some(new Principal(username)) : const None();
return new Future.value(principalOpt);
}
}
所以这部分代码和例子中的完全一样。我试图将 Option<Principal>
部分更改为 UserLookupByUsername<Principal>
但后来我卡住了。我的应用程序的全部代码可以找到 here. The error occurs in handlers.dart.
非常感谢任何帮助。
这是因为 JwtSessionHandler
期望 lookupByUsername
函数只有一个参数,而不是 lookupByUsernamePassword
有两个参数。
我在使用 JwtSessionHandler 时遇到了飞镖类型的问题。我想使用 this example application from the shelf_auth git 存储库作为指南来集成用户身份验证和会话。
不幸的是,我在 运行 应用程序时遇到错误(在 运行 应用程序之前未检测到语法错误) 错误信息如下:
Breaking on exception: object of type _TypeError: type '(String, String) => Future<UserLookupByUsernamePassword<Principal>>' is not a subtype of type 'UserLookupByUsernamePassword' of 'userLookup'.
错误源于这行代码
var sessionHandler = new JwtSessionHandler('super app',new Uuid().v4(),testLookup.lookupByUsernamePassword);
准确地说是 JwtSessionHandler
的最后一个输入参数
testLookup.lookupByUsernamePassword
。 testLookup
由 var testLookup = new TestUserLookup();
哪里
class TestUserLookup {
Future<Option<Principal>> lookupByUsernamePassword(String username, String password) {
final validUser = username == 'fred';
final principalOpt = validUser ? new Some(new Principal(username)) : const None();
return new Future.value(principalOpt);
}
Future<Option<Principal>> lookupByUsername(String username) {
final validUser = username == 'fred';
final principalOpt = validUser ? new Some(new Principal(username)) : const None();
return new Future.value(principalOpt);
}
}
所以这部分代码和例子中的完全一样。我试图将 Option<Principal>
部分更改为 UserLookupByUsername<Principal>
但后来我卡住了。我的应用程序的全部代码可以找到 here. The error occurs in handlers.dart.
非常感谢任何帮助。
这是因为 JwtSessionHandler
期望 lookupByUsername
函数只有一个参数,而不是 lookupByUsernamePassword
有两个参数。