Mik*_*ike 9 php oauth laravel laravel-passport
我正在构建一个API,我正在使用Laravel Passport进行身份验证.
API正用于我们的移动应用程序,因此我们使用密码授予客户端.
一切都很好,用户可以登录以获取访问令牌.我们创建了一个允许用户注册的注册端点.我们现在还需要API来返回访问令牌.
浏览文档无法以编程方式创建访问令牌.
如何在控制器中为密码授予客户端创建访问令牌?我显然不想对我自己的API执行HTTP请求来获取它.
我知道我可以使用个人访问授权客户端并调用createToken
用户模型,但这意味着访问令牌与不同的客户端相关联.这对我来说似乎不对.
试试这个
class UserController extends Controller
{
protected function login(Request $request)
{
$request->request->add([
'grant_type' => 'password',
'client_id' => '3',
'client_secret' => '6BHCRpB4tpXnQvC1DmpT7CXCSz7ukdw7IeZofiKn',
'scope' => '*'
]);
// forward the request to the oauth token request endpoint
$tokenRequest = Request::create('/oauth/token','post');
return Route::dispatch($tokenRequest);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 0
我知道我可以使用个人访问授予客户端并在用户模型上调用 createToken,但这意味着访问令牌与不同的客户端关联
不确定你的意思,你能解释一下吗?
现在这并不理想,但您也许可以注入\League\OAuth2\Server\Grant\PasswordGrant
并使用
respondToAccessTokenRequest(ServerRequestInterface $request
ResponseTypeInterface $responseType,
\DateInterval $accessTokenTTL)
Run Code Online (Sandbox Code Playgroud)
您必须构建所有这些对象,但这是返回任何令牌信息的密码的唯一公共方法。
归档时间: |
|
查看次数: |
3974 次 |
最近记录: |