fitness-app/lib/Views/login_view.dart
2020-04-03 13:27:51 +02:00

96 lines
2.7 KiB
Dart

import 'package:fitnessapp/Views/custom_drawer.dart';
import 'package:fitnessapp/Views/homescreen.dart';
import 'package:flutter/material.dart';
import 'workouts_view.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:http/http.dart' as http;
import 'dart:async';
import 'dart:convert';
class LoginView extends StatefulWidget{
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new _LoginViewState();
}
}
class _LoginViewState extends State<LoginView>{
final usernameController = TextEditingController();
final passwordController = TextEditingController();
final _formKey = GlobalKey<FormState>();
void _saveToken(String token) async{
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString("api_key", token);
String test = await prefs.getString("api_key");
print(test);
}
void _getToken() async {
var url = Uri.parse("http://10.16.17.18/api/login.php");
var request = http.MultipartRequest("post", url);
Map<String, String> test = {
"username": usernameController.value.text,
"password": passwordController.value.text
};
request.fields.addAll(test);
var response = await request.send();
if(response.statusCode == 200){
String text = await response.stream.bytesToString();
await _saveToken(text);
Navigator.push(context, MaterialPageRoute(
builder: (context) => HomescreenView(text)
));
}
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text("Login"),
),
body: Form(
key: _formKey,
child: Column(
children: <Widget>[
TextFormField(
decoration: InputDecoration(
labelText: "username"
),
controller: usernameController,
validator: (value){
if(value.isEmpty){
return "bitte gib einen Nutzername ein";
}
},
),
TextFormField(
decoration: InputDecoration(
labelText: "password"
),
controller: passwordController,
validator: (value){
if(value.isEmpty){
return "bitte gib Passwort ein";
}
},
obscureText: true,
),
RaisedButton(
child: Text("Login"),
onPressed: (){
if(_formKey.currentState.validate()){
_getToken();
}
},
)
],
),
)
);
}
}