• 1000
login(String email, String password) async{
var url = '$serverUrl/login';
final response = await http.post(url,
headers: {
'Accept':'application/json'
},
body: {
"email":"$email",
"password":"$password"
}
);
status = response.body.contains('error');
var data = json.decode(response.body);
if(status){
print('data : ${data["error"]}');
}else{
print('data : ${data["token"]}');
_save(data["token"]);
}
}
Но когда я создаю приложение Flutter, оно позволяет войти в систему с неправильными именами пользователя или паролем и перейти на экран панели управления.
Это код страницы входа
class LoginPageState extends State<LoginPage>{
DataBaseHelper dataBaseHelper = new DataBaseHelper();
String msgStatus;
final TextEditingController _emailController = new TextEditingController();
final TextEditingController _passwordController = new TextEditingController();
_onPressed(){
setState(() {
if(_emailController.text.trim().toLowerCase().isNotEmpty &&
_passwordController.text.trim().isNotEmpty){
dataBaseHelper.login(_emailController.text.trim().toLowerCase(),
_passwordController.text.trim()).whenComplete((){
if(dataBaseHelper.status){
_showDialog();
msgStatus = 'Check email or password';
debugPrint("${_emailController.text.trim().toLowerCase()} ${_passwordController.text.trim()}" );
}else{
Navigator.pushReplacementNamed(context, '/dashboard');
}
});
}
});
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
title: 'login',
home: Scaffold(
appBar: AppBar(
title: Text('Login'),
),
body: Container(),
),
);
}
void _showDialog(){
showDialog(
context:context,
builder : (BuildContext context){
return AlertDialog(
title: Text('Failed'),
content: Text('Check your email or password'),
actions: [
RaisedButton(
onPressed: (){
Navigator.of(context).pop();
},
child: Text('Close',
),
),
],
);
});
}
}
Laravel сторона:
class APILoginController extends Controller
{
//
public function login(Request $request){
$validator = Validator::make($request -> all(),[
'email' => 'required|string|email|max:255',
'password' =>'required'
]);
if($validator->fails()){
return response()->json($validator->errors());
}
$credentials = $request->only('email', 'password');
try {
if(! $token = JWTAuth::attempt($credentials)
){
return response()->json(['error'=>'invalid username or password'], [401]);
}
} catch (JWTException $e) {
//throw $th;
return response()->json(['error'=>'could not create token'], [500]);
}
return response()->json(compact('token'));
}
}