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 createState() { // TODO: implement createState return new _LoginViewState(); } } class _LoginViewState extends State{ final usernameController = TextEditingController(); final passwordController = TextEditingController(); final _formKey = GlobalKey(); 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 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: [ 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(); } }, ) ], ), ) ); } }