我有三个不同的laravel网站,我想让用户在一个网站登录,然后他将自动登录到其他两个网站.例如.如果您在stackoverflow上登录然后打开stackexchange,您将使用StackOverflow帐户登录.我尝试了很多软件包,但它们以无限的例外结束,或者它们根本不起作用.大多数基于SAML的软件包,我不知道为什么它不适用于我?我不知道我错过了什么?这有什么配置吗? 我正在使用laravel 5.6.所有应用程序都在同一台服务器上.
我已经尝试了许多基于SAML,OpenID和共享会话的解决方案,但所有这些解决方案都不能与我合作.我不知道我是否想念一些东西. 这是我尝试的最后一个例子,它没有用
这是我的代码
网站A.
$site_b = 'http://s_sesstion_2.test/';
Route::get('/', function (Request $request) use ($site_b) {
$session_id = Session::getId();
try {
$http = new Client();
$response = $http->post($site_b . 'api/sessions/server', [
'form_params' => [
'session_id' => $session_id,
],
'headers' => [
'Accept' => 'application/json',
]
]);
} catch (Exception $e) {
dd($e->getMessage());
}
return view('welcome');
});
Run Code Online (Sandbox Code Playgroud)
站点B(路线/ api.php)
Route::post('/sessions/server', function (Request $request) {
Storage::disk('local')->put('file.txt', $request->get('session_id'));
});
Run Code Online (Sandbox Code Playgroud)
站点B(route/web.php)
Route::get('/', function () {
$session_id …
Run Code Online (Sandbox Code Playgroud) 我在api路由文件中有这条路由
Route::post('/user/register', 'HomeController@register');
Run Code Online (Sandbox Code Playgroud)
并且寄存器功能是
public function register(Request $request)
{
$user = User::create([
...
]);
return $this->getAccessToken($request);
}
public function getAccessToken(Request $request)
{
$url = url('/oauth/token');
$headers = ['Accept' => 'application/json'];
$http = new Client;
$response = $http->post($url, [
'headers' => $headers,
'form_params' => [
'grant_type' => 'password',
'client_id' => 'my_client_id',
'client_secret' => 'my_client_secret',
'username' => 'username',
'password' => 'password'
],
]);
return json_decode((string)$response->getBody(), true);
}
Run Code Online (Sandbox Code Playgroud)
现在,当我发送post请求到url用户是创建但请求继续加载没有响应和整个应用程序挂起,直到我关闭IDE - phpstorm - 我发送相同的参数到postman相同的URL /oauth/token
,它工作正常.任何帮助或任何人告诉我我失踪了什么?
我正在将现有的 laravel ineria 从 mix 迁移到 vit。
我完成了迁移指南中的所有步骤,除了一件事之外,一切正常。
我有一个组件接收一个包含组件数组的道具。
我曾经这样要求它们(在循环内)
...
this.$options.components[component_name] = require(`@/Pages/Components/Inputs/${component_name}`).default
...
Run Code Online (Sandbox Code Playgroud)
由于“ require ”,这不适用于 vite,我必须将其替换为import
所以我尝试了这些方法,但没有一个有效
this.$options.components[component_name] = () => resolvePageComponent(`./Pages/Components/Inputs/${component_name}.vue`, import.meta.glob('./Pages/**/*.vue'))
this.$options.components[component_name] = () => resolvePageComponent(`@/Pages/Components/Inputs/${component_name}.vue`, import.meta.glob('./Pages/**/*.vue'))
this.$options.components[component_name] = resolvePageComponent(`./Pages/Components/Inputs/${component_name}.vue`, import.meta.glob('./Pages/**/*.vue'))
this.$options.components[component_name] = resolvePageComponent(`@/Pages/Components/Inputs/${component_name}.vue`, import.meta.glob('./Pages/**/*.vue'))
Run Code Online (Sandbox Code Playgroud)
他们都抛出相同的异常
"Uncaught (in promise) Error: Page not found: ./Pages/Components/Inputs/Text.vue".
Run Code Online (Sandbox Code Playgroud)