我从这里开始跟踪密室文件。我按照描述做了所有的事情,但仍然不起作用。我在生成新令牌时遇到错误“Call to a member function createToken()on null”。
use Illuminate\Http\Request;
Route::post('/tokens/create', function (Request $request) {
$token = $request->user()->createToken($request->token_name);
return ['token' => $token->plainTextToken];
});
下面是我在github https://github.com/farukhaleem/sanctum上的代码
我尝试使用文档中描述的sanctum。我正在获取用于生成令牌的createToken()方法,但我无法在$request->user()中获取任何内容。我在vscode中使用thunder客户端来获取结果。http://127.0.0.1:8000/api/tokens/create是端点,方法类型是POST。FORM数据具有值为“data”的token_name
1条答案
按热度按时间x4shl7ld1#
文档假设您有一个经过身份验证的用户,而您没有。这就是为什么
$request->user()
为空。因此,为了生成令牌,您可以使用以下命令
由于您正在学习,如果您将路由转换为带有表单的登录,用户可以在其中输入他们的电子邮件和密码,以便提交您生成令牌,则会更有意义。
另外请注意,在
createToken
上,如果传递用户代理会更好。这样您就知道使用该特定令牌的应用程序。