如何通过在Laravel中传递令牌来获取用户ID? 我想从请求中获取用户令牌,然后将用户头像发送给他。
答案 0 :(得分:1)
尝试一下
$userid = Auth::guard('api')->user()->id;
echo $userid;
答案 1 :(得分:0)
您可以在控制器中添加它
$user = Auth::user();
if ($user)
{
return $user->avatar;
}
您可以使用Auth
获取经过身份验证的用户。
答案 2 :(得分:0)
您可以使用Crypt Facade对用户ID进行加密和解密,并根据情况进行传递。
我建议选中API token authentication,如果您不想使用它,则可以通过非常简单和本机的方式进行以下操作:
一些安全建议:
// Controller
public function index() {
return view('/top/index.php', [$token => $this->getToken()]);
}
private function getToken() {
$id = '100001'; //get from db or wherever u need
// this just example
return Crypt::encrypt( $id. ':' . time();
}
然后在表单/刀片中
<form>
....
<input hidden value = "{{ $token }}" name='token'>
....
<input type submit>
</form>
在收到发布请求后
// controller
public function postIndex(Request $request) {
$userId = $this->extractIdFromToken($request->input('token'));
...
...
}
private function extractIdFromToken($token) {
if ($token === null) {
throw new \Exception('Missing token');
}
$tokenValue = explode(':', Crypt::decrypt($token));
// do verification of time needed else go to next
return $tokenValue[0] ?? null;
}