【问题标题】:OpenID With Slim Framework带有 Slim 框架的 OpenID
【发布时间】:2016-03-12 05:50:15
【问题描述】:

我正在尝试使用 Steam 的 Login With Slim Framework! 为此,我正在尝试使用 steamauth 库 (https://github.com/SmItH197/SteamAuthentication)

我可以通过 start.php 成功要求文件精简,但我如何调用 steamlogin() 和注销函数?

请帮帮我!

【问题讨论】:

    标签: php slim steam


    【解决方案1】:

    您需要为身份验证步骤添加一个中间件。

    这是一个简单的例子,假设您使用的是 Slim 3:

    $middleware = function (Request $request, Response $response, $next) {
        $this->user = null;
    
        if(!isset($_SESSION['steamid'])) {
            //don't interfere with unmatched routes
            $route = $request->getAttribute('route');
            if ($route && !in_array($route->getName(), ['login'])) {
                return $response->withStatus(403)->withHeader('Location', $this->router->pathFor('login'));
            }
        } else {
    
            include ('steamauth/userInfo.php'); //To access the $steamprofile array
            //Protected content
    
    
        }
    
        return $next($request, $response);
    };
    $app->add($middleware);
    

    在你的/login 路由中只包含一个带有steamlogin() 的视图。您可以为此使用基本的php-view 模板。

    【讨论】:

    • 嘿!感谢您的回复!我正在使用 Slim 2 和树枝!那么我必须做出哪些改变呢?
    • 稍后我会尝试看看2和3之间中间件的差异,应该不会太多。如果您使用的是 Twig,则需要在包含 userInfo.php 后注入一个全局变量,其值为 $steamprofile
    • 使用 $steamprofile 创建包含详细信息的数组,然后在渲染时传递它,我正确吗?
    • 是的,您可以直接注入该数组或对其进行过滤,然后根据需要创建自己的数组。
    • 谢谢!我将等待您对 slim 2 所做更改的回复!再次感谢! :D
    猜你喜欢
    • 2013-02-17
    • 1970-01-01
    • 2015-09-07
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    相关资源
    最近更新 更多