laravel - 登录数据库后如何存储网络推送通知设置
问题描述
我想在浏览器上发送网络推送通知。我使用本教程发送通知。这工作正常并显示细节。
{
"endpoint":"https://fcm.googleapis.com/fcm/send/ftB1OYn5bJY:APA91bGNcquGDcUXr29JiVV5Zos4Vi7FzmZ_wJQMITEXt8FlVBRBtgrPdLnPR6GALtnCOe9RNPP1cmC_bkv9D1BE1o6_-0cMXQsodpPoRCeOP5EDt6EwqK0ys36MbCi3HNTWf7ZcItVi",
"expirationTime":null,
"keys":{"p256dh":"BLJQqNovnlJ28d5xteX8whwdby6l0BYLvC_iyNtY2nO7YXQSI-EOvdOs1LXy8F_EuH2MZi0FU_HoCO-5GRQYYVQ",
"auth":"tDcEgiy5M5tJ3_vXuuQ9uw"}
}
但我想与我的 Laravel API 集成。
用户登录后,我想将 、 和 保存endpoint
到public key
数据库auth
中。
登录控制器
public function authenticate(Request $request)
{
$credentials = $request->only('username', 'password');
// return $credentials;
$response = array(
'status' => 'Failed',
'msg' => '',
'is_success' => false,
'data' => ''
);
try {
if (!$token = JWTAuth::attempt($credentials)) {
$response["msg"] = "Wrong Username or Password";
$response["status"] = "Failed";
$response["is_success"] = false;
} else {
if (Auth::user()->is_active == 0) {
$response["msg"] = "Your account has not been activated";
$response["status"] = "Failed";
$response["is_success"] = false;
} else {
$data = array();
$user = User::find(Auth::user()->id);
$data['id'] = $user->id;
$data['fname'] = $user->fname;
$data['lname'] = $user->lname;
$data['email'] = $user->email;
$data['username'] = $user->username;
$response["msg"] = "Login Successfully";
$response["status"] = "Success";
$response["data"] = compact('token');
$response["user"] = Auth::user();
}
}
} catch (\Exception $th) {
$response["msg"] = $th->getMessage();;
$response["status"] = "Failed";
$response["is_success"] = false;
}
return $response;
}
解决方案
我认为解决此问题的最佳方法是为该数据创建另一个模型,即用户模型和推送通知数据模型之间的一对一关系。在这个新模型上为 CRUD 操作创建一个控制器,然后从前端再进行一次 http 调用来存储数据。
推荐阅读
- c# - 如何在 discord.net 中获取用户、机器人和在线用户数?
- python - 如何在ezdxf中获取块的大小和位置?
- npm - Windows 10 中 Phoenix LiveView 应用的 Npm 安装失败
- vba - 如何更新与 Environ 用户名匹配的多条记录?Microsoft Access 数据库引擎找不到输入表
- git - Git 错误地认为我是最新的
- codeigniter - 为什么我不能使用 codeigniter 3 在 heroku 中上传音频 .. 它只在开发工具中响应“错误 404”实时服务器问题
- flutter - 如何在 listview.builder 的索引中为每个项目添加一个变量
- reactjs - 在我的 Visual Studio 终端上安装 npm 以创建 React js 应用程序后,当我节点启动服务器时,它的显示错误:找不到模块
- c# - 使用控制器检索列表中包含的数据会导致错误
- python - 如何将python数据框中一行中的所有元素移动一列?