写安卓中使用token
时间: 2024-05-24 11:05:51 浏览: 128
在安卓应用中使用token,可以通过以下步骤:
1. 在服务器端生成一个token,并将其返回给安卓应用。
2. 安卓应用在发起请求时,需要将token作为请求的一个参数传递给服务器。
3. 服务器端在接收到请求时,会检查请求中的token是否合法。如果合法,则继续处理请求,否则返回错误信息。
4. 在每次请求之前,安卓应用需要检查token是否过期。如果过期,则需要重新获取token并更新本地存储。
5. 在安卓应用中,可以将token保存在SharedPreferences或者SQLite数据库中,方便下次使用。同时,为了保障安全性,可以对token进行加密、解密处理。
示例代码:
在安卓应用中,可以使用OkHttp库来发送带有token参数的网络请求。示例如下:
```java
OkHttpClient client = new OkHttpClient.Builder().build();
String token = "your_token_here";
Request request = new Request.Builder()
.url("http://your_api_url_here")
.addHeader("Authorization", "Bearer " + token)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String responseBody = response.body().string();
Log.d("response", responseBody);
}
});
```
在服务器端,可以使用JWT(JSON Web Token)来生成token。示例如下:
```java
private String generateToken(User user) {
long currentTimeMillis = System.currentTimeMillis();
long expireMillis = currentTimeMillis + 24 * 60 * 60 * 1000; // token有效期为24小时
String token = Jwts.builder()
.setSubject(user.getUsername())
.setAudience("android_app")
.setIssuedAt(new Date(currentTimeMillis))
.setExpiration(new Date(expireMillis))
.signWith(SignatureAlgorithm.HS256, "your_secret_key_here")
.compact();
return token;
}
```
其中,"your_secret_key_here"是用于签名的密钥,需要保密。在验证token时,需要使用同样的密钥进行解密。
阅读全文