我正在使用laravel / lumen应用程序实现SSO。我有以下几点。
答案 0 :(得分:1)
获得access_token
后,您必须将授权标头发送回auth服务器,并且您可以使用自定义中间件或控制器操作来验证和授权用户。
简单的工作流程可能是这样的:
假设您使用axios库向auth服务器API发送HTTP请求,并且虚构路由为api/user/authorize
,那么在前端应用中:
axios({
method: 'get',
url: `http://localhost:8000/api/user/authorize`,
headers: {
'Accept': 'application/json',
'Authorization': `Bearer ${access_token}`
}
})
.then( response => {
// stuff to do on success
})
.catch( error => {
// stuff to do on failure
});
<强>路由/ api.php:强>
Route::get('user/authorize', 'UserController@isAuthorized');
<强> UserController.php:强>
public function isAuthorized(Request $request)
{
// Retrieving user based the on provided authorization header
$user = Auth::guard('api')->user();
// In case of no-user
if (!$user) {
return response()->json([
'isAuthorized' => false
], 401);
}
return response()->json([
'isAuthorized' => true
], 200);
}
这也可以通过许多其他方式完成。希望你明白这个想法!