Simple Auth Flutter는 Flutter 앱에서 사용자 인증을 간소화하는 가벼운 인증 패키지입니다. 토큰과 자격 증명을 안전하게 저장하고, 필요 시 자동으로 로그인 UI를 표시하며 다양한 신원 제공자와 원활하게 통합됩니다. 사용이 쉬우며 봇러플레이트 코드를 줄이고 보안 최선의 실천 방법을 유지합니다. Android, iOS, macOS를 지원하여 단순한 인증 워크플로우가 필요한 크로스플랫폼 애플리케이션에 이상적입니다.
사용 사례
사용자 로그인 및 세션 관리
자동 재인증
보안 토큰 저장
OAuth 공급자와의 통합
크로스 플랫폼 인증
주요 기능
보안 자격 증명 저장
자동 로그인 UI 프롬프트
최소 설정
여러 플랫폼을 지원합니다
내장 토큰 지속성
적합한 대상
초보자 플러터 개발자
기본 인증이 필요한 앱
긴 마감일이 있는 프로젝트
크로스 플랫폼 모바일 앱
간단한 로그인 흐름
고려 사항
로그인 화면에 대한 사용자 정의 제한
복잡한 인증 워크플로우에 적합하지 않습니다
외부 공급자 구현에 의존함
내장된 사용자 등록 없음
토큰 갱신 로직을 신중하게 처리해야 합니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Most apps need to make API calls. Every API needs authentication, yet no developer wants to deal with authentication. Simple Auth embeds authentication into the API so you dont need to deal with it.
And of course any standard OAuth2/Basic Auth server.
Usage
var api = new simpleAuth.GoogleApi(
"google", "client_id",clientSecret: "clientSecret",
scopes: [
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
]);
var request = newRequest(HttpMethod.Get, "https://www.googleapis.com/oauth2/v1/userinfo?alt=json");
var userInfo = await api.send<UserInfo, UserInfo>(request);
That's it! If the user is not logged in, they will automatically be prompted. If their credentials are cached from a previous session, the api call proceeds! Expired tokens even automatically refresh.
Flutter Setup
Call SimpleAuthFlutter.init(); in your Main.Dart. Now Simple Auth can automatically present your login UI
Redirect
Google requires the following redirect: com.googleusercontent.apps.YOUR_CLIENT_ID
Simple Auth by default uses SFSafari on iOS and Chrome Tabs on Android.
This means normal http redirects cannot work. You will need to register a custom scheme for your app as a redirect. For most providers, you can create whatever you want. i.e. com.myapp.foo:/redirct
Android Manifest
you would then add the following to your Android manifest
Note, if you want to avoid Apples mandatory user consent dialog
"foo" Wants to use "bar.com" to Sign In
This allows the app and website to share information about you.
add the lines above and set FooAuthenticator.useSSO = false; which will not use SFAuthenticationSession on iOS, and ASWebAuthenticationSession on macOS. This is the default behavior for the Keycloak provider.
Serialization
Json objects will automatically serialize if you conform to JsonSerializable
If you use the generator and you objects have the factory factory JsonSerializable.fromJson(Map<String, dynamic> json) your api calls will automatically Serialize/Deserialize
Or you can pass your own Converter to the api and handle conversion yourself.