96 lines
2.7 KiB
Dart
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();
|
|
}
|
|
},
|
|
)
|
|
],
|
|
),
|
|
)
|
|
);
|
|
}
|
|
} |