Giter Site home page Giter Site logo

jonathandsantiago / flutter_identityserver Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 122 KB

Projeto mobile com flutter de exemplo de conexão de autenticação com IdentityServer4

Kotlin 0.34% Swift 0.98% Objective-C 0.09% Dart 26.45% HTML 9.60% CMake 19.41% C++ 41.36% C 1.78%

flutter_identityserver's Introduction

flutter_identityserver

Projeto mobile com autenticação em Identity Server 4

  • Clonar projeto: git clone https://github.com/jonathandsantiago/flutter_identityserver.git

Bibliotecas

  • flutter_appauth flutter pub add flutter_appauth
  • http flutter pub add http
  • flutter_secure_storage flutter pub add flutter_secure_storage

Arquitetura projeto

A arquitetura do projeto esta organizada no seguinte formato:

    lib
        src
            models
            services
            ui
        app.dart
        secrets.dart --Este arquivo não esta disponível no código o mesmo devera ser criado.
    main.dart
  • Em services está o usuario_service.dart serviço responsável por se comunicar com o nosso SSO Contendo:
    • login método responsável por logar o usuário;
    • getUserInfo método responsável por obter as informações do usuário logado;
    • logout método responsável por deslogar o usuário;
    • init método responsável por validar se o token do usuário ainda é valido batendo no endpoint refresh_token do SSO, caso for um token expirado será deslogado o usuário;
  • A classe secrets.dart Armazena as variaveis de conexão com o SSO.
    • AUTH_CLIENT_ID Cliente Id;
    • AUTH_DOMAIN domínio da aplicação SSO sem o protocolo https ou http ex: sso.com.br;
    • AUTH_REDIRECT_URI nome da aplicação cadastrada no SSO e aplicada na configuração do android e ios;
    • AUTH_ISSUER domínio da aplicação SSO com o protocolo https ou http ex: https://$AUTH_CLIENT_ID;
    • AUTH_SECRET secret da aplicação cadastrada no SSO

Configuração Android

  • Build: Em android -> app -> build.gradle
    • Insira o id da aplicação em applicationId, lembrando que o mesmo deverá estar cadastrada na aplicação identity server (SSO) com o mesmo nome.
    • Caso for testar em uma versão mais antiga do android altere o minSdkVersion no meu caso alterei para 18;
    • Insira o
    manifestPlaceholders += [
                    'appAuthRedirectScheme': 'appflutteridentityserver.com'
            ]
    
    substitutindo o appAuthRedirectScheme do exemplo pelo applicationId cadastrado no SSO;
  • AndroidManifest: Em android -> app -> src -> main -> AndroidManifest.xml adicione o seguinte treixo em application:
        <queries>
            <intent>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https" />
            </intent>
            <intent>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.APP_BROWSER" />
                <data android:scheme="https" />
            </intent>
        </queries>
    

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.