Flutter OIDC默认存储管理插件oidc_default_store的使用
Flutter OIDC默认存储管理插件oidc_default_store的使用
安装 💻
确保你已经在机器上安装了Flutter SDK。
在你的 pubspec.yaml
文件中添加 oidc_default_store
依赖:
dependencies:
oidc_default_store:
然后运行以下命令来安装它:
flutter packages get
运行测试 🧪
对于首次使用的用户,需要安装very_good_cli:
dart pub global activate very_good_cli
要运行所有的单元测试:
very_good test --coverage
查看生成的覆盖率报告可以使用lcov。
# 生成覆盖率报告
genhtml coverage/lcov.info -o coverage/
# 打开覆盖率报告
open coverage/index.html
示例代码
为了获得完整的示例,请参阅:https://github.com/Bdaya-Dev/oidc/tree/main/packages/oidc_default_store/example
示例代码如下:
import 'package:flutter/material.dart';
import 'package:oidc/oidc.dart';
import 'package:oidc_default_store/oidc_default_store.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('OIDC 默认存储管理插件示例'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 初始化OIDC配置
final config = OidcConfiguration(
authority: 'https://your-auth-server.com',
client_id: 'your-client-id',
redirect_uri: 'your-app-redirect-uri',
post_logout_redirect_uri: 'your-app-post-logout-redirect-uri',
response_types: ['code'],
scopes: ['openid', 'profile', 'email'],
);
// 创建OIDC客户端
final oidcClient = OidcClient(config);
// 使用默认存储管理插件
final store = OidcDefaultStore();
// 登录
await oidcClient.login(store: store);
// 获取令牌信息
final tokens = await store.loadTokens();
print(tokens);
},
child: Text('登录并获取令牌'),
),
),
),
);
}
}
更多关于Flutter OIDC默认存储管理插件oidc_default_store的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter OIDC默认存储管理插件oidc_default_store的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,oidc_default_store
是一个用于管理OpenID Connect (OIDC) 默认存储的插件。它通常用于存储和管理OIDC相关的令牌(如ID Token、Access Token、Refresh Token)以及其他认证信息。使用这个插件可以帮助开发者轻松地管理用户的认证状态,并在应用的不同部分共享这些信息。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 oidc_default_store
插件的依赖:
dependencies:
flutter:
sdk: flutter
oidc_default_store: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
基本使用
1. 初始化存储
在使用 oidc_default_store
之前,你需要初始化存储实例。通常,你可以在应用的启动阶段进行初始化。
import 'package:oidc_default_store/oidc_default_store.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化OIDC默认存储
await OidcDefaultStore.init();
runApp(MyApp());
}
2. 存储和获取令牌
你可以使用 OidcDefaultStore
来存储和获取OIDC相关的令牌。
import 'package:oidc_default_store/oidc_default_store.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('OIDC Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
// 存储令牌
await OidcDefaultStore.setAccessToken('your_access_token');
await OidcDefaultStore.setIdToken('your_id_token');
await OidcDefaultStore.setRefreshToken('your_refresh_token');
},
child: Text('Store Tokens'),
),
ElevatedButton(
onPressed: () async {
// 获取令牌
String? accessToken = await OidcDefaultStore.getAccessToken();
String? idToken = await OidcDefaultStore.getIdToken();
String? refreshToken = await OidcDefaultStore.getRefreshToken();
print('Access Token: $accessToken');
print('ID Token: $idToken');
print('Refresh Token: $refreshToken');
},
child: Text('Get Tokens'),
),
],
),
),
),
);
}
}
3. 清除存储
当用户注销时,你可能需要清除存储中的所有OIDC相关数据。
ElevatedButton(
onPressed: () async {
// 清除存储
await OidcDefaultStore.clear();
},
child: Text('Clear Storage'),
),