3

我已经使用 Lithium php 框架创建了一个 RESTful 应用程序,现在我的问题是如何保护它?

是否有使用锂框架的 OAUTH 或 HTTP Digest Authentication 的现有代码?

4

2 回答 2

2

感谢您编辑您的问题以实际提出具体问题。请参阅以下内容:

于 2012-12-11T04:18:17.963 回答
2

虽然我不确定您正在寻找什么样的安全性......

Lithium 内置了安全性,您可以在这里查看两个简短的教程:

“简单身份验证”教程中介绍了基础知识……您需要:

  • 一个数据库来跟踪你的用户
  • 引导Auth通过config/bootstrap.php
  • 设置会话和身份验证适配器

然后,这取决于您是要通过表单还是其他方法进行身份验证。

教程将向您展示如何设置表单,但您也可以config/routes.php像这样“保护”通过文件请求的路由(url)......

<?php

use lithium\net\http\Router;
use lithium\core\Environment;

use lithium\security\Auth;

// check if the user is logged in
$user = Auth::check('default'); 

// these routes are not behind a login
Router::connect('/login', 'Sessions::add');
Router::connect('/logout', 'Sessions::delete');

if ($user && $user["user"] == "admin") {

    // these two routes will only work if a user is authenticated.
    Router::connect('/{:controller}/{:action}/{:args}.{:type}');
    Router::connect('/{:controller}/{:action}/{:args}');
}

// redirect the user to a login if no other routes match
Router::connect('/{:args}', array(), function($request) { header('Location: /login/url/'.str_replace('/','*',$request->url)); exit; });

?>
于 2012-12-08T01:17:16.993 回答