春之虎翼---在thinkphp5里面使用iframe框架

今天在用thinkphp写iframe代码的时候,遇到的一个问题就是当iframe正常通过url调用另一个网页的html的时候:
在这里插入图片描述
用正常的src地址查询的方法会有报错,说方法不存在。
这样的原因是因为thinkphp框架的html调用都是通过控制器来控制发生的,在html和html之间不能相互调用,解决方法是URL直接写调用方法的地址:
在这里插入图片描述
然后在相应的方法的位置写上
在这里插入图片描述
即可。这是我的一点小小的理解,归根结底还是对于thinkphp框架的不熟悉导致的,所以希望以后能有时间静下心来好好看一看thinkphp底层的东西。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ThinkPHP6中使用League/oauth2-server,您需要遵循以下步骤: 1. 安装League/oauth2-server 使用composer安装League/oauth2-server: ``` composer require league/oauth2-server ``` 2. 配置数据库 在config/database.php文件中配置数据库连接信息。 3. 创建授权服务器类 创建一个授权服务器类,并实现League\OAuth2\Server\AuthorizationServerInterface接口。在授权服务器类中,您需要实现以下方法: - getClientEntity($clientIdentifier, $grantType, $clientSecret = null, $mustValidateSecret = true):获取客户端实体。 - getAccessToken($accessToken):获取访问令牌实体。 - validateAuthorizationRequest(ServerRequestInterface $request):验证授权请求。 - completeAuthorizationRequest(AuthorizationRequest $authorizationRequest, ResponseInterface $response):完成授权请求。 - respondToAccessTokenRequest(ServerRequestInterface $request, ResponseInterface $response):响应访问令牌请求。 示例代码: ```php use League\OAuth2\Server\AuthorizationServerInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class AuthorizationServer implements AuthorizationServerInterface { public function getClientEntity($clientIdentifier, $grantType, $clientSecret = null, $mustValidateSecret = true) { // TODO: 实现获取客户端实体的逻辑 } public function getAccessToken($accessToken) { // TODO: 实现获取访问令牌实体的逻辑 } public function validateAuthorizationRequest(ServerRequestInterface $request) { // TODO: 实现验证授权请求的逻辑 } public function completeAuthorizationRequest(AuthorizationRequest $authorizationRequest, ResponseInterface $response) { // TODO: 实现完成授权请求的逻辑 } public function respondToAccessTokenRequest(ServerRequestInterface $request, ResponseInterface $response) { // TODO: 实现响应访问令牌请求的逻辑 } } ``` 4. 创建授权服务器 在控制器中创建授权服务器: ```php use League\OAuth2\Server\AuthorizationServer; class AuthController extends Controller { public function authorize(AuthorizationServer $server) { // TODO: 实现授权请求的逻辑 } public function accessToken(AuthorizationServer $server) { // TODO: 实现获取访问令牌的逻辑 } } ``` 5. 配置路由 在路由配置文件中,将authorize和accessToken方法映射到控制器的路由上: ```php use think\facade\Route; use App\Controller\AuthController; Route::get('authorize', [AuthController::class, 'authorize']); Route::post('access_token', [AuthController::class, 'accessToken']); ``` 6. 实现授权请求逻辑 在控制器的authorize方法中,实现授权请求的逻辑。您需要使用AuthorizationServerInterface的validateAuthorizationRequest方法验证授权请求,并根据授权请求的参数生成授权页面。 示例代码: ```php use League\OAuth2\Server\AuthorizationServerInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class AuthController extends Controller { public function authorize(AuthorizationServerInterface $server, ServerRequestInterface $request, ResponseInterface $response) { try { // 验证授权请求 $authorizationRequest = $server->validateAuthorizationRequest($request); // 生成授权页面 return $this->fetch('authorize', [ 'client_id' => $authorizationRequest->getClient()->getIdentifier(), 'scopes' => $authorizationRequest->getScopes(), ]); } catch (OAuthServerException $e) { return $e->generateHttpResponse($response); } catch (\Exception $e) { return $response->withStatus(500)->withHeader('Content-Type', 'text/plain')->write($e->getMessage()); } } } ``` 7. 实现获取访问令牌逻辑 在控制器的accessToken方法中,实现获取访问令牌的逻辑。您需要使用AuthorizationServerInterface的respondToAccessTokenRequest方法响应访问令牌请求,并返回访问令牌实体。 示例代码: ```php use League\OAuth2\Server\AuthorizationServerInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class AuthController extends Controller { public function accessToken(AuthorizationServerInterface $server, ServerRequestInterface $request, ResponseInterface $response) { try { // 响应访问令牌请求 $accessTokenResponse = $server->respondToAccessTokenRequest($request, $response); // 返回访问令牌实体 return $accessTokenResponse; } catch (OAuthServerException $e) { return $e->generateHttpResponse($response); } catch (\Exception $e) { return $response->withStatus(500)->withHeader('Content-Type', 'text/plain')->write($e->getMessage()); } } } ``` 现在,您已经成功在ThinkPHP6中使用League/oauth2-server实现了OAuth2授权服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值