Add: get token from api

This commit is contained in:
2024-05-22 00:41:44 +03:00
parent e95fb08e31
commit d8e68f9b34
3 changed files with 83 additions and 12 deletions

View File

@@ -1,8 +1,10 @@
import 'dart:convert';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:gymlink_module_web/main_mobile.dart';
import 'package:gymlink_module_web/providers/main.dart';
import 'package:http/http.dart' as http;
import 'package:provider/provider.dart';
void main() {
@@ -71,11 +73,50 @@ class _ExamplePageState extends State<ExamplePage> {
@override
void initState() {
super.initState();
Future.microtask(
() => context.read<GymLinkProvider>().onTokenReceived('token123'));
// Future.microtask(
// () => context.read<GymLinkProvider>().onTokenReceived('token123'));
Future.microtask(() => context
.read<GymLinkProvider>()
.setTheme(ThemeData.light(useMaterial3: true)));
Future.microtask(() => context.read<GymLinkProvider>().setOnError(() {
const snackBar = SnackBar(
content: Text('Ошибка подключения'),
duration: Duration(seconds: 3), // Длительность отображения Snackbar
behavior: SnackBarBehavior
.fixed, // Поведение Snackbar (fixed или floating)
);
ScaffoldMessenger.of(context).showSnackBar(snackBar);
Future.delayed(const Duration(seconds: 3))
.then((value) => _setToken());
}));
Future.microtask(() async {
await _setToken();
});
}
Future<void> _setToken() async {
final token = await _getToken();
if (token != '') {
context.read<GymLinkProvider>().onTokenReceived(token);
} else {
context.read<GymLinkProvider>().onError();
}
}
Future<String> _getToken() async {
var url =
Uri.http('gymlink.freemyip.com:8080', 'api/auth/authorize_client');
var response = await http.post(url, body: {
'GymKey': 'eeb42dcb-8e5b-4f21-825a-3fc7ada43445',
'id': '123'
}); // Just testing token
var decodedBody = jsonDecode(response.body) as Map;
if (decodedBody['payload'] == null) {
return '';
}
return decodedBody['payload']['token'];
}
@override