我正在使用 Laravel Framework 5.6 版实现在线预订系统并Laravel Socialite实现 gmail 登录。
我有一个方法可以在预订之前检查用户是否登录,或者通过 redis 和 cookie 放置reserveData并redirectUrl指定uniqid以在登录后获取它:
public function checkAuthentication(Request $request)\n{\n $reserveData = json_decode($request->input(\'reserveData\'), true);\n Session::put(\'reserveData\', $reserveData);\n\n if (!Auth::check()) {\n $reserveID = uniqid();\n Cookie::queue(Cookie::forget(\'reserveID\'));\n Cookie::queue(Cookie::make(\'reserveID\', $reserveID, 1440));\n\n $stepData = [\n \'redirectUrl\' => route(\'reserve\', [\'productId\' => $reserveData[\'productId\']]),\n \'reserveData\' => $reserveData\n ];\n\n Redis::set($reserveID, serialize($stepData));\n\n return redirect()->route(\'redirectToGmail\');\n }\n\n return redirect()->route(\'reserve\', [\'productId\' => $reserveData[\'productId\']]);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n重定向到Gmail:
\n\npublic function redirectToGmail()\n{\n return Socialite::driver(\'google\')->redirect();\n}\nRun Code Online (Sandbox Code Playgroud)\n\n问题是,仅在用户第一次尝试登录时uniqid从 …
我正在尝试使用mongoose在 MongoDB 中创建一个新对象。
这是我的猫鼬模式:
const UsersSchema = new Schema<BaseUser>(
{
email: {
type: Schema.Types.String,
index: true,
required: true,
unique: true,
},
someKey: {
type: Schema.Types.String,
default: null,
required: false,
enum: Object.values(SomeEnumObj),
}
},
{
timestamps: true,
}
);
enum SomeEnumObj = {
TEST = "TEST",
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下方法创建新用户时:
model.create({
email: 'some@email.com',
}).exec()
Run Code Online (Sandbox Code Playgroud)
抛出以下错误:
users validation failed: someKey: `null` is not a valid enum value for path `someKey`.,
Run Code Online (Sandbox Code Playgroud)
我能够通过设置来解决这个问题:
users validation failed: someKey: `null` is not a valid enum value …Run Code Online (Sandbox Code Playgroud)