在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之前,键将是一个字符串,我将其直接放在那里,它将返回onResponse方法就好了,但是现在当我这样做时,它总是返回onFailure,并且我已经检查过它是否是一个网络连接错误,它是。有人可以向我介绍该键应该怎么做,或者为什么它不能像以前那样工作?
答案 0 :(得分:1)
您不应在应用程序外部显示APP_KEY
,因为它将用于加密敏感数据(例如cookie和会话)。相反,您应该看看Laravel Passport(与Laravel 5.3+兼容)
通过Passport库,您可以创建可与Android应用共享的API密钥。