You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Appwrite中检查活跃会话?Java环境下MainActivity启动时验证登录状态

在MainActivity启动时用Appwrite判断用户是否登录(Java)

核心逻辑

Appwrite 的 Account.get() 方法可获取当前登录用户的信息:若用户已登录,会返回完整的 User 对象;若未登录/会话失效,该方法会抛出异常,我们通过捕获异常来区分登录状态。

具体实现步骤

  1. 初始化Appwrite客户端
    先确保客户端配置正确,可在 MainActivity 的 onCreate 中初始化:

    import io.appwrite.Client;
    import io.appwrite.services.Account;
    
    // 初始化客户端(替换为你的端点和项目ID)
    Client client = new Client(getApplicationContext())
        .setEndpoint("https://cloud.appwrite.io/v1")
        .setProject("你的项目ID");
    
    Account account = new Account(client);
    
  2. 启动时检查登录状态
    由于Appwrite API调用是异步的,需用回调处理结果:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        // 初始化客户端与Account实例
        Client client = new Client(this)
            .setEndpoint("https://cloud.appwrite.io/v1")
            .setProject("你的项目ID");
    
        Account account = new Account(client);
    
        // 调用get()方法验证登录状态
        account.get(new io.appwrite.Callback<io.appwrite.models.User>() {
            @Override
            public void onSuccess(io.appwrite.models.User user) {
                // 用户已登录,执行后续逻辑(如跳转主页、更新UI)
                runOnUiThread(() -> {
                    Toast.makeText(MainActivity.this, "已登录:" + user.getName(), Toast.LENGTH_SHORT).show();
                });
            }
    
            @Override
            public void onFailure(io.appwrite.exceptions.AppwriteException e) {
                // 用户未登录,执行登录引导逻辑(如跳转登录页)
                runOnUiThread(() -> {
                    startActivity(new Intent(MainActivity.this, LoginActivity.class));
                    finish();
                });
            }
        });
    }
    

注意事项

  • 必须在UI线程中更新UI,所以用 runOnUiThread 包裹Toast、页面跳转等操作。
  • onFailure 回调不仅会在未登录时触发,也可能因网络错误等其他异常触发,若需要更精准判断,可通过 e.getCode() 区分错误类型(如未登录对应的错误码为401)。

内容的提问来源于stack exchange,提问作者Deadly Mouse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 05:55:14