使用社交名流提供商使用 keycloak 保护 Laravel API
Secure Laravel API with keycloak using socialite provider
我正在使用 SSO 的 Keycloak 来验证服务器中已存在的用户 (keycloak)。我使用了 Socialite 提供商,我现在可以对用户进行身份验证并在 Keycloak 上访问他们的令牌。但我现在想在会话期间存储此令牌,并在 vue js 的每个 api 调用中验证用户已经通过身份验证。
Route::get('/', function () {
return Socialite::driver('keycloak')->redirect();
});
Route::get('/callback/keycloak', function (){
$user = Socialite::driver('keycloak')->user();
dd($user);
});
User Info from Keycloak
您正在实施 server-side 处理。
通常,对于这样的实现,您必须创建自己的 session-token 并将其存储在为客户端保留的位置(cookie、会话等)。或者您可以通过 javascript 发送给客户端进行存储。
在这种情况下,您还可以存储 $user->token
.
另一种方式是在vuejs中实现keycloak登录。这是我喜欢使用它的方式,因为它将登录和身份验证过程分开。并且服务器端不关心用户如何登录,只要有有效的session-token.
我正在使用 SSO 的 Keycloak 来验证服务器中已存在的用户 (keycloak)。我使用了 Socialite 提供商,我现在可以对用户进行身份验证并在 Keycloak 上访问他们的令牌。但我现在想在会话期间存储此令牌,并在 vue js 的每个 api 调用中验证用户已经通过身份验证。
Route::get('/', function () {
return Socialite::driver('keycloak')->redirect();
});
Route::get('/callback/keycloak', function (){
$user = Socialite::driver('keycloak')->user();
dd($user);
});
User Info from Keycloak
您正在实施 server-side 处理。
通常,对于这样的实现,您必须创建自己的 session-token 并将其存储在为客户端保留的位置(cookie、会话等)。或者您可以通过 javascript 发送给客户端进行存储。
在这种情况下,您还可以存储 $user->token
.
另一种方式是在vuejs中实现keycloak登录。这是我喜欢使用它的方式,因为它将登录和身份验证过程分开。并且服务器端不关心用户如何登录,只要有有效的session-token.