标签: inertiajs

Laravel Passport 登录无法使用 Jetstream Inertia 正确重定向

我已经使用 Laravel Passport 实现了 OAuth 系统,但该系统的登录和所有身份验证均由具有 Inertia 的 Laravel Jetstream 处理。

当我想要请求代码(使用授权代码授予)时,我的应用程序将我重定向到我的 OAuth 服务器,该服务器在继续之前要求我登录,此屏幕是 Laravel Jetstream 使用 Inertia (Vue) 登录生成的屏幕。当我登录时,它会将我重定向到授权页面,但是这个重定向很奇怪,因为该页面显示在 Vue(惯性)页面内,浏览器中的 URL 不会更新,并且如果我接受授权请求它将我重定向回我的应用程序,但重定向位于同一个 Vue 页面内,我的意思是,URL 与我的 OAuth 服务器登录名相同,但视图是请求代码的应用程序。

我认为 Vue 中的重定向存在问题,因为授权页面没有使用 Inertia(Laravel Passport 的默认授权页面),而且我不知道如何修复它,你能帮我吗?

这是一张图片:

坏框架

正如你所看到的,它似乎是在模态中,但是是一个惯性错误页面,里面显示的是授权页面,是一个重定向错误,我不知道如何修复

authentication inertiajs laravel laravel-passport

0
推荐指数
1
解决办法
1487
查看次数

Laravel 和 Inertia 在 Vue 内创建路线

我用 Inertia 安装了 Laravel。我在里面得到了这个resources/js/app.js

\n
require('./bootstrap');\n\n// Import modules...\nimport { createApp, h } from 'vue';\nimport { App as InertiaApp, plugin as InertiaPlugin } from '@inertiajs/inertia-vue3';\nimport { InertiaProgress } from '@inertiajs/progress';\n\nconst el = document.getElementById('app');\n\ncreateApp({\n    render: () =>\n        h(InertiaApp, {\n            initialPage: JSON.parse(el.dataset.page),\n            resolveComponent: (name) => require(`./Pages/${name}`).default,\n        }),\n})\n    .mixin({ methods: { route } })\n    .mixin(require('./translation'))\n    .use(InertiaPlugin)\n    .mount(el);\n\nInertiaProgress.init({ color: '#4B5563' });\n\n
Run Code Online (Sandbox Code Playgroud)\n

正如您可能看到的那样.mixin({ methods: { route } })。我可以用来this.route('name.of.route')从 \xcb\x99routes` 文件夹生成命名路由。

\n

我想修改route方法以在每次生成路由时默认添加前缀。如何调整 Inerta 的route方法。

\n

inertiajs laravel vue.js

0
推荐指数
1
解决办法
1万
查看次数

对惯性响应和 json 响应使用相同的方法 Laravel Jetstream

我一直在使用 Laravel 支持的 API 和 VueJS 支持的前端,这是两个用于单页面应用程序的独立项目。现在我想切换到 Laravel Jetstream 和 Inertia.js,因为我可以在单个项目中创建 SPA。这是惯性如何工作的一个例子 -

class UsersController extends Controller

{
    public function index()
    {
        $users = User::active()
            ->orderByName()
            ->get(['id', 'name', 'email']);

        return Inertia::render('Users', [
            'users' => $users
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我们可以定义Route::get('users',['UserController::class','index']);并获取用户列表localhost:8000/users并在网页中查看用户列表。

我的问题是,我可以在移动应用程序中使用相同的控制器和 API 响应方法吗?

我必须构建具有相同功能的网络应用程序和移动应用程序。对于网络,我需要惯性响应,对于移动应用程序,我需要 json 响应。为了在 Laravel 项目中显示用户列表,我可以使用上面的代码。但是,如何返回return response($users);与移动应用程序中的 JSON 相同的响应呢?我可以创建 API 路由并api.php创建单独的控制器或方法,或者为 API 或 Inertia 响应添加条件,但我认为可能有更好的方法来使用相同的控制器和方法处理 Inertia 和 JSON 响应。

php json inertiajs laravel laravel-jetstream

0
推荐指数
1
解决办法
3282
查看次数

我需要 Inertia 才能使用 Laravel + React

我想移动应用程序,并且正在寻找新技术。我没有使用 Laravel 的经验,但我想知道如果我想创建一个 Laravel + React Web 应用程序,我是否还需要查看 Inertia,或者我可以在没有 Inertia 的情况下执行 Laravel + React 吗?

inertiajs laravel reactjs

-2
推荐指数
1
解决办法
2190
查看次数