【发布时间】:2020-04-02 05:14:18
【问题描述】:
如何通过在 Laravel 中传递令牌来获取用户 ID? 我想从请求中获取用户令牌,然后将用户头像发送给他。
【问题讨论】:
-
你说通过将令牌传递给 laravel。意思是像jwt?什么样的令牌?
标签: laravel api laravel-passport
如何通过在 Laravel 中传递令牌来获取用户 ID? 我想从请求中获取用户令牌,然后将用户头像发送给他。
【问题讨论】:
标签: laravel api laravel-passport
您可以使用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;
}
【讨论】:
你可以在你的控制器中添加它
$user = Auth::user();
if ($user)
{
return $user->avatar;
}
您可以使用Auth 来获取经过身份验证的用户。
【讨论】:
试试这个
$userid = Auth::guard('api')->user()->id;
echo $userid;
【讨论】: