0 purchases
dfapi auth
DfApi Authentication #
dfapi_auth, kullanıcının dfapi ile kimlik doğrulamasını sağlayan flutter paketidir.
Kullanım #
Uygulamanızı DfApiAuth Widget' ı ile sarmalayarak uygulamanıza authentication yapısını eklemiş olursunuz.
DfApiAuth, DfApiAuthRequest tipinde bir parametreye ihtiyaç duyar.
//DfApiAuthRequest
class DfApiAuthRequest {
final Widget child;
final AuthConfig configuration;
final Widget loginWidget;
final Widget loadingWidget;
final Widget splashWidget;
Function(String, DfApiUserInfo) callBack;
DfApiAuthRequest({
@required this.child,
@required this.configuration,
this.loginWidget,
this.loadingWidget,
this.splashWidget,
Function(String, DfApiUserInfo) callBack,
}) : this.callBack = callBack;
}
copied to clipboard
DfApiAuthRequest' in child ve configuration adında iki zorunlu parametresi vardır.
Configuration:
AuthConfig tipinde, uygulamanın kimlik doğrulama için kullanılacak end-point bilgilerini barındırır.
AuthConfig({
@required String address,
String loginPath = "auth/login",
String refreshTokenPath = "auth/refreshToken",
String logoutPath = "",
})
copied to clipboard
Zorunlu olan address parametresi, auhtentication işleminin yapılacağı sunucu adresidir. Diğer alanlar ise hangi end-point' lerden bu işlemlerin yapılacağını belirtir. Login ve refresh token end-pointleri için AuthController isminde bir controller' ın olduğu varsayılarak, default değerler verilmiştir. Kendi yapınıza göre değiştirebilirsiniz.
Child:
Kimlik doğrulamasından sonra yönlendirilecek olan sayfa. Örnek olarak uygulamanın anasayfası olabilir.
LoginWidget:
Eğer kullanıcının giriş yapacağı ekranı özelleştirmek isterseniz kendi tasarımınızı bu parametreyi kullanarak uygulayabilirsiniz.
Varsayılan ve Özelleştirilmiş Örnek Ekran
---
Diğer loading ve splash parametreleride aynı login mantığında mantıkta çalışmaktadır. Tamamen süreçleri özelleştirmek için kullanılır. Boş geçilirse varsayılan değerler atanır.
CallBack
Kullanıcı giriş yaptıktan sonra token veya kullanıcı bilgilerine ihtiyacınız varsa request' te bulunan callBack parametresine Function(String, DfApiUserInfo) tipinde fonksiyon geçirilerek token ve kullanıcının claims gibi diğer bilgilerine ulaşabilirsiniz.
callBack fonskiyonundan alınan token aşağıdaki gibi api çağrılarında kullanılmak üzere ayarlanabilir.
...
child: DfApiApp(
request: DfApiAuthRequest(
...
callBack: apiHelperInitializer,
...
),
),
...
void apiHelperInitializer(String token, DfApiUserInfo userInfo) {
if (GetIt.I.isRegistered<ApiHelper>()) return;
var uri = Uri.parse("api url");
List<ApiHelperPathItem> paths = [
ApiHelperPathItem.get("Key", "Path/SamplePath"),
];
var apiHelper = ApiHelper.setup(
uri,
token,
paths,
responseResolverFunc: (json) => (json) { //... },
);
GetIt.I.registerLazySingleton<ApiHelper>(() => apiHelper);
}
copied to clipboard
Api çağrıları için api_helper paketi kullanılabilir.
https://pub.dev/packages/api_helper
Uygulama agacı içerisinde, farklı yerlerde oturum açan kullanıcının bilgilerine veya kullanıcı ile ilişkili token' a ihtiyacınız olabilir. Bu durumda DfApiAppFunctions tipindeki yardımcı class kullanılabilir. Bu class' a DfApiApp içerisindeki functions alanı ile erişilir.
Kendi login ekranınızı tasarladıysanız eğer login işlemini tetiklemek için yine bu sınıftaki login metodu kullanılabilir.
Örnek:
var token = await DfApiApp.functions.getToken();
//ya da
token = DfApiApp.token;
copied to clipboard
En temel hali ile aşağıdaki gibi kullanılabilir
return MaterialApp(
//...
home: DfApiApp(
request: DfApiAuthRequest(
configuration: AuthConfig(address: "adress"),
child: HomePage() //--> Authentication sonraso yönlendirilecek olan widget.
)
)
copied to clipboard
Özelleştirmek istenirsede aşağıdaki gibi kullanılabilir.
return MaterialApp(
//...
home: DfApiApp(
request: DfApiAuthRequest(
configuration: AuthConfig(
address: "adress"
),
child: HomePage(),
loginWidget: LoginPage(),
loadingWidget: Loading(),
callBack: apiHelperInitializer,
)
)
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.