flutter_okta 1.0.0 copy "flutter_okta: ^1.0.0" to clipboard
flutter_okta: ^1.0.0 copied to clipboard

Flutter okta.

example/lib/main.dart

import 'package:dio/dio.dart';
import 'package:example/config.dart';
import 'package:example/register.dart';
import 'package:flutter/material.dart';
import 'package:flutter_okta/flutter_okta.dart';
import 'package:tuple/tuple.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final TextEditingController emailController = TextEditingController();
  final TextEditingController passwordController = TextEditingController();

  String info;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Okta example'),
      ),
      body: SingleChildScrollView(
        child: Column(
          children: [
            SizedBox(height: 20),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                IconButton(
                  icon: Image.asset('assets/ic_google.png'),
                  onPressed: () async {
                    final Tuple2<String, String> res = await FlutterOkta.I
                        .openIdSocialLogin(context, googleIdpId, oktaDomain,
                            oktaClientId, oktaRedirectUri);
                    setState(() {
                      info = 'idToken: ${res.item1}\naccessToken: ${res.item2}';
                    });
                  },
                ),
                IconButton(
                  icon: Image.asset('assets/ic_facebook.png'),
                  onPressed: () async {
                    final Tuple2<String, String> res = await FlutterOkta.I
                        .openIdSocialLogin(context, facebookIdpId, oktaDomain,
                            oktaClientId, oktaRedirectUri);
                    setState(() {
                      info = 'idToken: ${res.item1}\naccessToken: ${res.item2}';
                    });
                  },
                ),
                IconButton(
                  icon: Image.asset('assets/ic_linkedin.png'),
                  onPressed: () async {
                    final Tuple2<String, String> res = await FlutterOkta.I
                        .openIdSocialLogin(context, linkedinIdpId, oktaDomain,
                            oktaClientId, oktaRedirectUri);
                    setState(() {
                      info = 'idToken: ${res.item1}\naccessToken: ${res.item2}';
                    });
                  },
                ),
              ],
            ),
            TextField(
              controller: emailController,
              decoration: InputDecoration(
                hintText: 'Email',
              ),
            ),
            TextField(
              controller: passwordController,
              decoration: InputDecoration(
                hintText: 'Password',
              ),
            ),
            RaisedButton(
              child: Text('Login'),
              onPressed: () async {
                FocusScope.of(context).unfocus();
                final Response<Map<String, dynamic>> res = await FlutterOkta.I
                    .restLogin(oktaDomain, emailController.text,
                        passwordController.text);
                setState(() {
                  info = res.data.toString();
                });
              },
            ),
            FlatButton(
              child: Text('Register'),
              onPressed: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (_) => RegisterPage()));
              },
            ),
            SelectableText(info ?? ''),
          ],
        ),
      ),
    );
  }
}