Laravel 5.5 PersonalAccessToken table 新列
Laravel 5.5 PersonalAccessToken table new column
我已经设法在 oauth_access_tokens
table 中添加了一个名为 callback_url
的新列。我遇到的问题是当我试图将 callback_url
值传递给 createToken
函数时。
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 ?: []
);
}
VUEJS 组件:
store() {
this.accessToken = null;
this.form.errors = [];
axios.post('/user/token', this.form)
.then(response => {
this.form.name = '';
this.form.callback_url = '';
this.form.scopes = [];
this.form.errors = [];
this.tokens.push(response.data.token);
this.showAccessToken(response.data.accessToken);
})
.catch(error => {
if (typeof error.response.data === 'object') {
this.form.errors = _.flatten(_.toArray(error.response.data));
} else {
this.form.errors = ['Something went wrong. Please try again.'];
}
});
},
它在没有 $request->callback_url 的情况下工作正常,但是有了那个额外的参数,这是一个错误,我正在返回。
Whoops! Something went wrong!
Type error: Argument 2 passed to Models\User::createToken() must be of
the type array, string given, called in UserAccessTokenController.php
on line 62
Symfony\Component\Debug\Exception\FatalThrowableError/vendor/laravel/passport/src/HasApiTokens.php
64 { "file": "/UserAccessTokenController.php", "line": 62, "function":
"createToken", "class": "Models\User", "type": "->" } { "function":
"store", "class": "UserAccessTokenController", "type": "->" }
有没有人遇到过这个问题或知道如何处理这个问题。提前致谢。
尝试将 $request->callback_url 转换为这样的数组:
(array)$request->callback_url
函数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;
}
我已经设法在 oauth_access_tokens
table 中添加了一个名为 callback_url
的新列。我遇到的问题是当我试图将 callback_url
值传递给 createToken
函数时。
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 ?: []
);
}
VUEJS 组件:
store() {
this.accessToken = null;
this.form.errors = [];
axios.post('/user/token', this.form)
.then(response => {
this.form.name = '';
this.form.callback_url = '';
this.form.scopes = [];
this.form.errors = [];
this.tokens.push(response.data.token);
this.showAccessToken(response.data.accessToken);
})
.catch(error => {
if (typeof error.response.data === 'object') {
this.form.errors = _.flatten(_.toArray(error.response.data));
} else {
this.form.errors = ['Something went wrong. Please try again.'];
}
});
},
它在没有 $request->callback_url 的情况下工作正常,但是有了那个额外的参数,这是一个错误,我正在返回。
Whoops! Something went wrong!
Type error: Argument 2 passed to Models\User::createToken() must be of the type array, string given, called in UserAccessTokenController.php on line 62 Symfony\Component\Debug\Exception\FatalThrowableError/vendor/laravel/passport/src/HasApiTokens.php 64 { "file": "/UserAccessTokenController.php", "line": 62, "function": "createToken", "class": "Models\User", "type": "->" } { "function": "store", "class": "UserAccessTokenController", "type": "->" }
有没有人遇到过这个问题或知道如何处理这个问题。提前致谢。
尝试将 $request->callback_url 转换为这样的数组:
(array)$request->callback_url
函数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;
}