在Andriod 开发的APP中嵌入另外一个H5开发的系统,通过webview方式嵌入的。
在Andriod APP中登录以后可以免登陆进入到H5系统,想问下我在H5中怎么认证用户已经在Andriod APP已经登录过了,不是非法的访问。

Andriod 和 H5混合开发 身份验证问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 你知我知皆知 2024-08-04 04:18关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
要解决这个问题,您需要在Android应用和Webview之间建立一个安全的身份验证机制。这可以通过以下步骤来实现:
- 在Android应用中安装第三方库(例如:
okhttp
),以便发送HTTP请求到Web服务器。 - 从Android应用中获取用户的ID、密码等敏感信息,并将其保存在本地数据库或文件中。
- 在Webview中创建一个新的HTTP请求,并将用户ID作为查询参数传递给Web服务器。
- 使用HTTPS协议进行通信,以确保数据的安全传输。
- 接收Web服务器返回的数据,并检查是否包含有效的令牌或其他身份验证信息。
- 如果存在有效的身份验证信息,则允许用户进入H5界面;否则,拒绝访问并提示用户重新登录。
以下是一个简单的示例代码片段,展示了如何使用OkHttp向Web服务器发送POST请求并将用户ID作为查询参数:
import okhttp3.*; public class LoginWebView { private static final String WEBVIEW_URL = "https://example.com/login"; public void login(String userId) throws IOException { OkHttpClient client = new OkHttpClient(); RequestBody body = new FormUrlEncodedBuilder() .add("userId", userId) .build(); Request request = new Request.Builder() .url(WEBVIEW_URL) .post(body) .build(); try (Response response = client.newCall(request).execute()) { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); System.out.println(response.body().string()); } } }
在这个例子中,我们首先创建了一个OkHttpClient对象,然后定义了一个RequestBody,其中包含了我们需要传递给Web服务器的查询参数。然后,我们构建了一个Request对象,这个对象包含了我们的URL和我们要发送的请求体。最后,我们使用OkHttpClient的newCall方法发送了这个请求。
请注意,这只是一个基本的例子,实际的解决方案可能需要根据您的具体需求进行调整。此外,为了提高安全性,请确保在处理用户输入时遵循最小权限原则,并且只在必要时才存储用户的个人信息。
解决 无用评论 打赏 举报 - 在Android应用中安装第三方库(例如: