पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv0.2.9

oauth_dio

एक कस्टमाइज़ेबल oauth क्लाइंट जिसमें टोकन स्टोरेज और डिओ के इंटरसेप्टर हैं

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
537
लाइक
58
Pub अंक
150

पैकेज इंस्टॉल करें

flutter pub add oauth_dio

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

oauth_dio एक कस्टमाइज़ेबल OAuth क्लाइंट है जो Dart और Flutter एप्लिकेशन के लिए है, जो Dio HTTP क्लाइंट पर आधारित है। यह सीधे टोकन प्रबंधन, स्वचालित टोकन रिफ्रेश और प्रमाणीकरण प्रवाह को हैंडल करने के लिए इंटरसेप्टर प्रदान करता है। पैकेज सुरक्षित टोकन स्टोरेज का समर्थन करता है और मौजूदा Dio कॉन्फ़िगरेशन के साथ बिना किसी दिक्कत के एकीकृत होता है। ऑथ 2 या समान प्रमाणीकरण प्रोटोकॉल की आवश्यकता वाले ऐप्स के लिए आदर्श है जो कई प्लेटफॉर्मों पर काम करते हैं।

उपयोग

  • OAuth2 लॉगिन प्रवाह को एकीकृत करना
  • स्वचालित रूप से समाप्त हुए टोकन को अद्यतन करें
  • बियरर टोकन के साथ API रिक्वेस्ट को सुरक्षित करना
  • HTTP कॉल में प्रमाणीकरण हेडर का निपटान
  • प्रमाणीकरण के साथ सुरक्षित REST क्लाइंट बनाना

मुख्य विशेषताएँ

  • टोकन स्टोरेज और प्राप्त करना
  • स्वचालित टोकन रीफ्रेश
  • Dio-आधारित इंटरसेप्टर्स
  • कस्टमाइज़ेबल OAuth कॉन्फ़िगरेशन
  • प्लेटफॉर्म के अनुकूल समर्थन

इनके लिए उपयुक्त

  • Dio का उपयोग करने वाले Flutter ऐप्स
  • OAuth2 प्रमाणीकरण वाले एप्लिकेशन
  • सुरक्षित τोकन प्रबंधन की आवश्यकता वाले विकासकर्ता
  • सुसंगत प्रमाणीकरण की आवश्यकता वाले बहुप्लेटफॉर्म एप्लिकेशन
  • प्रॉजेक्ट जो प्रमाणीकरण के लिए न्यूनतम बॉलरप्लेट चाहते हैं

विचार योग्य बातें

  • Dio को सेट करने की आवश्यकता है
  • सही टोकन स्टोरेज सेटअप की आवश्यकता है
  • जटिल फ्लो के लिए कस्टम लॉजिक की आवश्यकता हो सकती है
  • बाहरी OAuth प्रदाता पर निर्भर करता है
  • OAuth2-शैली के प्रवाहों तक सीमित

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

oauth_dio

A customizable oauth client with token storage and interceptors for dio.

Getting Started

Instantiate a new OAuth Client:

// myclient.dart
import 'package:oauth_dio/oauth_dio.dart';

final oauth = OAuth(
      tokenUrl: '<YOUR TOKEN URL>',
      clientId: '<YOUR CLIENT ID>',
      clientSecret: '<YOUR SECRET>');

Obtaining an access token using username and password:

OAuthToken token = oauth.requestTokenAndSave(
  PasswordGrant(
    username: '<YOUR USERNAME>',
    password: '<YOUR PASSWORD>'
  )
).then((token) {
    print(token.accessToken);
});

Updating access token using a refresh token:

OAuthToken token = oauth.requestTokenAndSave(
  RefreshTokenGrant(
    refreshToken: '<YOUR REFRESH TOKEN>'
  )
).then((token) {
    print(token.accessToken);
});

Configuring Dio to send access tokens:

Instantiate a new OAuth Client with a permanent storage, by default oauth is configured with memory storage.

In this example we will use the flutter_secure_storage plugin to store the token on the device's keychain.

// myclient.dart
import 'package:oauth_dio/oauth_dio.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';


class OAuthSecureStorage extends OAuthStorage {
  final FlutterSecureStorage storage = const FlutterSecureStorage();
  final accessTokenKey = 'accessToken';
  final refreshTokenKey = 'refreshToken';
  final tokenExpirationKey = 'tokenExpiration';

  @override
  Future<OAuthToken> fetch() async {
    final expiration = await storage.read(key: tokenExpirationKey);

    return OAuthToken(
        accessToken: await storage.read(key: accessTokenKey),
        refreshToken: await storage.read(key: refreshTokenKey),
        expiration: DateTime.tryParse(expiration.toString()));
  }

  @override
  Future<OAuthToken> save(OAuthToken token) async {
    await storage.write(key: accessTokenKey, value: token.accessToken);
    await storage.write(key: refreshTokenKey, value: token.refreshToken);
    await storage.write(key: tokenExpirationKey, value: token.expiration.toString());

    return token;
  }

  @override
  Future<void> clear() async {
    await storage.delete(key: accessTokenKey);
    await storage.delete(key: refreshTokenKey);
    await storage.delete(key: tokenExpirationKey);
  }
}

final oauth = OAuth(
    tokenUrl: '<YOUR TOKEN URL>',
    clientId: '<YOUR CLIENT ID>',
    clientSecret: '<YOUR SECRET>',
    storage: OAuthSecureStorage()
);

final authenticatedDio = Dio();
authenticatedDio.interceptors.add(BearerInterceptor(oauth));


authenticatedDio.get('/my/protected/resource').then((response) {
    print(response.data);
})

Custom grant types

Use the abstract class OAuthGrantType to implement a custom grant type.

import 'package:oauth_dio/oauth_dio.dart';

class TicketGrant extends OAuthGrantType {
  String accessToken;

  TicketGrant({
    this.accessToken
  })

  @override
  RequestOptions handle (RequestOptions request) {
    request.data = "grant_type=ticket&access_token=$accessToken";
    return request;
  }
}

// Request token using ticket grant
oauth.requestTokenAndSave(
  TicketGrant(
    accessToken: 'foobar'
  )
)

Feedback

Please feel free to give me any feedback helping support this package!

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 1 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।