当前位置:首页 > PHP

android token php实现

2026-02-15 15:46:30PHP

实现 Android 与 PHP 的 Token 验证

Token 验证流程 Android 客户端向 PHP 服务器发起登录请求,服务器验证成功后生成 Token 并返回给客户端。客户端在后续请求中携带该 Token,服务器验证 Token 有效性后返回数据。

PHP 服务器端实现

生成 Token 的 PHP 代码示例:

<?php
function generateToken($userId) {
    $secretKey = 'your_secret_key'; // 密钥
    $header = base64_encode(json_encode(['alg' => 'HS256', 'typ' => 'JWT']));
    $payload = base64_encode(json_encode(['user_id' => $userId, 'exp' => time() + 3600])); // 1小时过期
    $signature = hash_hmac('sha256', "$header.$payload", $secretKey);
    return "$header.$payload.$signature";
}

function validateToken($token) {
    $secretKey = 'your_secret_key';
    $parts = explode('.', $token);
    if (count($parts) !== 3) return false;

    $signature = hash_hmac('sha256', "$parts[0].$parts[1]", $secretKey);
    if ($signature !== $parts[2]) return false;

    $payload = json_decode(base64_decode($parts[1]), true);
    if (time() > $payload['exp']) return false;

    return $payload['user_id'];
}
?>

Android 客户端实现

使用 Retrofit 发送 Token 的示例:

// 定义接口
public interface ApiService {
    @POST("login")
    Call<LoginResponse> login(@Body LoginRequest request);

    @GET("protected")
    Call<DataResponse> getProtectedData(@Header("Authorization") String token);
}

// 登录并保存 Token
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://your-php-server.com/")
    .build();

ApiService api = retrofit.create(ApiService.class);
api.login(new LoginRequest(username, password)).enqueue(new Callback<LoginResponse>() {
    @Override
    public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
        if (response.isSuccessful()) {
            String token = response.body().getToken();
            // 保存 Token 到 SharedPreferences
        }
    }
});

// 使用 Token 请求受保护数据
String savedToken = getTokenFromPreferences(); // 从 SharedPreferences 获取
api.getProtectedData("Bearer " + savedToken).enqueue(...);

安全注意事项 Token 应通过 HTTPS 传输防止中间人攻击。服务器应设置合理的 Token 过期时间,客户端需要处理 Token 过期情况并重新登录。敏感操作应要求二次验证。

android token php实现

优化建议 可以考虑使用 Refresh Token 机制延长会话有效期。对于高安全需求场景,可以结合设备指纹等额外验证因素。服务器端应实现 Token 黑名单功能以支持主动注销。

标签: androidtoken
分享给朋友:

相关文章

vue实现token

vue实现token

Vue 中实现 Token 认证的步骤 存储 Token 在用户登录成功后,将服务器返回的 Token 存储到本地。可以使用 localStorage 或 sessionStorage 实现持久化存储…

android php 实现登录

android php 实现登录

实现 Android 与 PHP 的登录功能 Android 端实现 在 Android 应用中,使用 Retrofit 或 Volley 库发送 HTTP 请求到 PHP 后端。以下是一个使用 Re…

android实现php环境

android实现php环境

在Android设备上搭建PHP环境可以通过多种方式实现,以下是几种常见的方法: 使用Termux应用 Termux是一个强大的终端模拟器,支持在Android上运行Linux环境。通过Termux…

vue 实现token登录

vue 实现token登录

实现 Token 登录的基本流程 在 Vue 中实现 Token 登录通常涉及前端与后端的交互,主要包括登录请求、Token 存储、请求拦截和权限验证等步骤。 登录请求与 Token 获取 前端通过…

vue带token实现登录

vue带token实现登录

使用 Vue 实现 Token 登录 在 Vue 中实现 Token 登录通常涉及前端与后端的交互,包括发送登录请求、存储 Token、并在后续请求中携带 Token。以下是具体实现步骤: 发送登录…

vue实现token

vue实现token

Vue 中实现 Token 认证 在 Vue 中实现 Token 认证通常涉及以下几个关键步骤: 安装必要的依赖 如果需要与后端 API 交互,可以安装 axios: npm install a…