authentication<T> function
Middleware
authentication<
T>({ - FutureOr<(bool, T?)> basicAuth(
- Request request,
- String authorization
)?,
- FutureOr<(bool, T?)> bearerAuth(
- Request request,
- String token
)?,
- FutureOr<(bool, T?)> apiKeyAuth(
- Request request,
- String value
)?,
- FutureOr<(bool, T?)> customAuth(
- Request request
)?,
- String bearerPrefix = _bearer,
})
Implementation
@experimental
Middleware authentication<T>({
FutureOr<(bool, T?)> Function(Request request, String authorization)?
basicAuth,
FutureOr<(bool, T?)> Function(Request request, String token)? bearerAuth,
FutureOr<(bool, T?)> Function(Request request, String value)? apiKeyAuth,
FutureOr<(bool, T?)> Function(Request request)? customAuth,
String headerKey = _headerApiKey,
String bearerPrefix = _bearer,
}) {
return (handler) {
return (request) async {
final (authorized, data) = await _isAuthorizedWithData<T?>(
request,
basicAuth,
bearerAuth,
apiKeyAuth,
customAuth,
headerKey,
bearerPrefix,
);
if (authorized) {
if (data == null) {
return handler(request);
}
return handler(request.set<T>(() => data));
}
return Response.unauthorized('');
};
};
}