【发布时间】:2021-12-09 11:44:59
【问题描述】:
现在我正在使用 laravel 从数据库中获取 okta 应用程序信息。我将这些行拉出并且凭据不同,因为有 2 个不同的 okta 应用程序。即每个应用程序的 client_secret 和 redirect URI 是不同的。
现在我拉出 2 行并循环遍历并在循环中分配凭据,但问题是我不知道如何区分应用程序并在循环时为它们分配不同的凭据。
我分配凭据的服务提供商中的引导方法
public function boot(OktaApp $oktaApp, Repository $repository)
{
$oktaApps = $oktaApp
->where('name', 'oktaApp1')
->orWhere('name', 'oktaApp2')
->get()->toArray();
foreach ($oktaApps as $app) {
//How do I assign creds dynamically based on app name?
$repository['services.oktaApp1'] = [
'client_id' => $app['client_id'],
'client_secret' => $app['client_secret'],
'redirect' => $app['redirect_uri'],
'base_url' => $app['base_url'],
];
}
}
如果我死了并从$oktaApps转储结果
array:2 [▼
0 => array:6 [▼
"id" => 1
"name" => "oktaApp1"
"client_id" => "......removed for security....."
"client_secret" => "......removed for security....."
"redirect_uri" => "http://localhost:8000/login/oktaApp1/callback"
"base_url" => "......removed for security....."
]
1 => array:6 [▼
"id" => 2
"name" => "oktaApp2"
"client_id" => "......removed for security....."
"client_secret" => "......removed for security....."
"redirect_uri" => "http://localhost:8000/login/oktaApp2/callback"
"base_url" => "......removed for security....."
]
]
我现在如何手动分配值(工作但硬编码)
$repository['services.oktaApp1'] = [
'client_id' => $app[0]['client_id'],
'client_secret' => $app[0]['client_secret'],
'redirect' => $app[0]['redirect_uri'],
'base_url' => $app[0]['base_url'],
];
$repository['services.oktaApp2'] = [
'client_id' => $app[1]['client_id'],
'client_secret' => $app[1]['client_secret'],
'redirect' => $app[1]['redirect_uri'],
'base_url' => $app[1]['base_url'],
];
【问题讨论】: