【发布时间】:2020-06-03 11:48:06
【问题描述】:
我有一个 Laravel Web 应用程序 (website.nl) 和一个 Laravel API (api.website.nl)。
当用户使用网站上的登录表单登录时。向 API 发出一个 post 请求。当登录请求成功时,会以 JSON 字符串的形式发回一个令牌 AND 用户对象。登录方法如下所示。
public function login(Request $request)
{
$email = $request->input('email');
$password = $request->input('password');
$response = $this->client->request('POST', self::$apiRootUrl . '/login', [
'headers' => [
'Accept' => 'application/json',
],
'form_params' => [
'email' => $email,
'password' => $password
],
]);
$result = json_decode($response->getBody()->getContents());
if (isset($result->success->token))
{
$user = User::create([
'id' => $result->success->user->id,
'name' => $result->success->user->name,
'email' => $result->success->user->email,
'password' => $password
]);
Auth::login($user);
$this->apiToken = $result->success->token;
return $this->sendLoginResponse($request);
}
return $this->sendFailedLoginResponse($request);
}
我希望这个登录功能尽可能的愚蠢,意思是让 API 判断这是否是一个有效的登录请求。此方法仅传递参数。
主网站不应有数据库。它仅使用 API 登录、获取令牌并使用该令牌发出请求以收集数据,供用户在主网站的仪表板上查看。
出于这个原因,我的问题是:如何存储从 API 检索到的 User 对象,使其像 Eloquent 模型一样可查询。但无需将其存储在数据库中。同样,主网站不需要数据库。它只与 API 进行通信以获取其数据。
我希望这个问题有意义,如果没有,请询问更多详细信息。
我不想在主网站上创建带有迁移的重复数据库。因为这是.api 子域的工作。此外,所有模型都在会话中使用。永远不会被存储更长的时间,因为它也位于 .api 子域的 store 方法中。
【问题讨论】:
-
我希望这种方法能有所帮助。 stackoverflow.com/questions/33331421/… 至少对我有用