Added profile screen with API interaction, better .env usage
This commit is contained in:
@@ -2,21 +2,21 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_appauth/flutter_appauth.dart';
|
||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
import 'package:swifty/methods/api.dart';
|
||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
|
||||
const FlutterAppAuth _appAuth = FlutterAppAuth();
|
||||
|
||||
Future<void> redirect_to_oauth(BuildContext context) async {
|
||||
final String _clientId = "CLIENT TODO";
|
||||
final String _clientSecret = "SECRET TODO";
|
||||
final String _redirectUrl = 'swifty-companion://oauth2/callback';
|
||||
final String _authorizationEndpoint = 'https://api.intra.42.fr/oauth/authorize';
|
||||
final String _tokenEndpoint = 'https://api.intra.42.fr/oauth/token';
|
||||
String _clientId = dotenv.get('CLIENT-ID');
|
||||
String _clientSecret = dotenv.get('CLIENT-SECRET');
|
||||
const String _redirectUrl = 'swifty-companion://oauth2/callback';
|
||||
const String _authorizationEndpoint = 'https://api.intra.42.fr/oauth/authorize';
|
||||
const String _tokenEndpoint = 'https://api.intra.42.fr/oauth/token';
|
||||
final request = AuthorizationRequest(
|
||||
_clientId,
|
||||
_redirectUrl,
|
||||
serviceConfiguration: AuthorizationServiceConfiguration(
|
||||
serviceConfiguration: const AuthorizationServiceConfiguration(
|
||||
authorizationEndpoint: _authorizationEndpoint,
|
||||
tokenEndpoint: _tokenEndpoint,
|
||||
));
|
||||
@@ -29,7 +29,7 @@ Future<void> redirect_to_oauth(BuildContext context) async {
|
||||
clientSecret: _clientSecret,
|
||||
authorizationCode: result.authorizationCode,
|
||||
grantType: 'authorization_code',
|
||||
serviceConfiguration: AuthorizationServiceConfiguration(
|
||||
serviceConfiguration: const AuthorizationServiceConfiguration(
|
||||
authorizationEndpoint: "https://api.intra.42.fr/oauth/authorize",
|
||||
tokenEndpoint: _tokenEndpoint,
|
||||
),
|
||||
@@ -53,13 +53,22 @@ class LoginScreen extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: const Text("Login")),
|
||||
body: Center(
|
||||
child: ElevatedButton(
|
||||
onPressed: () {
|
||||
redirect_to_oauth(context);
|
||||
},
|
||||
child: const Text('Login'),
|
||||
),
|
||||
body: Stack(
|
||||
fit: StackFit.expand,
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/cluster-photo-00.jpg',
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
Center(
|
||||
child: ElevatedButton(
|
||||
onPressed: () {
|
||||
redirect_to_oauth(context);
|
||||
},
|
||||
child: const Text('Login into 42 API'),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user