我需要 encode/decode Laravel 的 APP_KEY 才能在我的 Android 项目中使用吗?
Do i need to encode/decode Laravel's APP_KEY to use in my Android project?
在我的 Laravel 项目中,我的 .env 中有一个生成的密钥,如下所示:
APP_KEY=base64:randomcharactershere
经过研究,我发现我需要使用它来建立会话。
在我的 Android 项目中,我使用了 Retrofit2 和 OkHttp3,以下代码是每次发出请求时发送的拦截器:
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
Request request = original.newBuilder()
.header("APP_KEY", "base64:randomcharactershere")
.method(original.method(), original.body())
.build();
return chain.proceed(request);
}
});
问题是,我不知道我是否应该将生成的密钥放在 .header("APP_KEY", "key value")
中,或者我应该解码给定的密钥,因为它前面有 "base64:" 或者什么,我只知道在 Laravel 5.4 之前,键是一个字符串,我会直接把它放在那里,它会 return onResponse 方法就好了,但现在当我这样做时,它总是 returns onFailure,我已经检查过它是否是网络连接错误,确实是。有人可以阐明我应该如何处理该密钥,或者为什么它不能像以前那样工作吗?
您不应在应用程序之外泄露 APP_KEY
,因为它会用于加密敏感数据(如 cookie 和会话)。相反,您应该看看 Laravel Passport(与 Laravel 5.3+ 兼容)
Passport 库将允许您创建一个 API 密钥,您可以与您的 Android 应用程序共享。
在我的 Laravel 项目中,我的 .env 中有一个生成的密钥,如下所示:
APP_KEY=base64:randomcharactershere
经过研究,我发现我需要使用它来建立会话。 在我的 Android 项目中,我使用了 Retrofit2 和 OkHttp3,以下代码是每次发出请求时发送的拦截器:
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
Request request = original.newBuilder()
.header("APP_KEY", "base64:randomcharactershere")
.method(original.method(), original.body())
.build();
return chain.proceed(request);
}
});
问题是,我不知道我是否应该将生成的密钥放在 .header("APP_KEY", "key value")
中,或者我应该解码给定的密钥,因为它前面有 "base64:" 或者什么,我只知道在 Laravel 5.4 之前,键是一个字符串,我会直接把它放在那里,它会 return onResponse 方法就好了,但现在当我这样做时,它总是 returns onFailure,我已经检查过它是否是网络连接错误,确实是。有人可以阐明我应该如何处理该密钥,或者为什么它不能像以前那样工作吗?
您不应在应用程序之外泄露 APP_KEY
,因为它会用于加密敏感数据(如 cookie 和会话)。相反,您应该看看 Laravel Passport(与 Laravel 5.3+ 兼容)
Passport 库将允许您创建一个 API 密钥,您可以与您的 Android 应用程序共享。