我设法在名为oauth_access_tokens
的{{1}}表中添加了一个新列。我遇到的问题是当我试图将callback_url
值传递给callback_url
函数时。
createToken
VUEJS COMPONENT:
public function store(Request $request)
{
$this->validation->make($request->all(), [
'name' => 'required|max:255',
'scopes' => 'array|in:'.implode(',', Passport::scopeIds()),
])->validate();
return $request->user()->createToken(
$request->name, $request->callback_url, $request->scopes ?: []
);
}
在没有$ request-> callback_url的情况下工作正常但是使用额外的参数这是我要回来的错误。
糟糕!出了点问题!
类型错误:传递给Models \ User :: createToken()的参数2必须是 在UserAccessTokenController.php中调用的类型数组,给定的字符串 在第62行 的Symfony \组件\调试\异常\ FatalThrowableError /供应商/ laravel /护照/ SRC / HasApiTokens.php 64 {" file":" /UserAccessTokenController.php" ;," line":62," function": " createToken"," class":" Models \ User"," type":" - >" } {"功能": " store"," class":" UserAccessTokenController"," type":" - >" }
是否有人遇到过此问题或知道如何处理此问题。提前致谢。
答案 0 :(得分:1)
函数 createToken()只接受两个参数。我通过创建 accessToken 然后使用新的 callback_url 值更新结果来解决我的问题。希望有所帮助。
public function store(Request $request)
{
$token = $request->user()->createToken(
$request->name, $request->scopes ?: []
);
if ($request->callback_url){
$url = $request->callback_url;
$request->user()->tokens()->where( 'id', $token->token->id )->update( [
'callback_url' => $url,
] );
}
return $token;
}
答案 1 :(得分:-1)
尝试将$ request-> callback_url转换为数组,如下所示:
(array)$request->callback_url