Skip to content

安全存储

付费插件

此插件需要购买。价格:$49(一次性购买)

概述

SecureStorage API 为敏感数据(如令牌、凭据和用户密钥)提供加密存储。

安装

shell
composer require nativephp/mobile-secure-storage

使用

PHP (Livewire/Blade)

php
use Native\Mobile\Facades\SecureStorage;

// 存储值
SecureStorage::set('auth_token', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...');

// 获取值
$token = SecureStorage::get('auth_token');

if ($token) {
    // 使用令牌
}

// 删除值
SecureStorage::delete('auth_token');

JavaScript (Vue/React/Inertia)

js
import { secureStorage } from '#nativephp';

// 存储值
await secureStorage.set('auth_token', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...');

// 获取值
const result = await secureStorage.get('auth_token');
if (result.value) {
    console.log('令牌:', result.value);
}

// 删除值
await secureStorage.delete('auth_token');

方法

set(string $key, ?string $value): array

存储或删除值。

参数类型描述
keystring存储的键名
valuestring|null要存储的值(null 表示删除)

返回: { success: true }

get(string $key): array

获取存储的值。

参数类型描述
keystring要获取的键名

返回: { value: string }(如果未找到则为空字符串)

delete(string $key): array

删除存储的值。

参数类型描述
keystring要删除的键名

返回: { success: true }

安全性

Android

  • 使用 EncryptedSharedPreferences
  • AES-256 加密
  • 由 Android Keystore 系统支持
  • 自动密钥管理

iOS

  • 使用 iOS Keychain Services
  • 数据在静态时加密
  • kSecAttrAccessibleWhenUnlockedThisDeviceOnly 保护
  • 在具有 Secure Enclave 的设备上有硬件支持

示例

存储用户凭据

php
use Native\Mobile\Facades\SecureStorage;

public function login($email, $password)
{
    // 认证...
    $token = $this->authenticate($email, $password);

    // 安全存储令牌
    SecureStorage::set('auth_token', $token);
    SecureStorage::set('user_email', $email);
}

public function logout()
{
    SecureStorage::delete('auth_token');
    SecureStorage::delete('user_email');
}

应用启动时检查存储的凭据

php
use Native\Mobile\Facades\SecureStorage;

public function checkAuth()
{
    $token = SecureStorage::get('auth_token');

    if ($token && !empty($token['value'])) {
        // 使用存储的令牌自动登录
        return $this->loginWithToken($token['value']);
    }

    return redirect('/login');
}

基于 NativePHP 官方文档翻译