如何在 Laravel 中验证 HTTP 请求

fs_tigre

我有一个 iOS 应用程序,它向使用 Laravel 的服务器/站点发出 HTTP 请求,一切正常,但我想在返回任何信息之前验证 HTTP 请求。现在它的工作方式是您键入example.com/zip-code/51751并且服务器响应请求,我想要的是让服务器仅响应来自 iOS 应用程序的请求。我在想的是key/token在我的 iOS 应用程序和 Laravel 应用程序中硬编码一个随机,然后将该密钥作为我的 HTTP 请求的一部分,以便我可以检查请求以查看请求中的密钥是否与键入服务器(.env文件)。

这是我目前拥有的代码,它可以正常工作但不能进行验证。

路由文件

Route::get('zip-code/{zipCode}', 'MyController@placeDescription');

控制器

class MyController extends Controller
{
    public function placeDescription($zipCode)
    {     
        $placeInfo = InfoDB::where('ZipCode', $zipCode)->get();
        return ($placeInfo);
    }
}

.env 文件

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:GpyF4XKuxMqCfkylHfdsfFDSjfasdfFDgfsdGfdsFGffhg=
APP_URL=http://localhost

LOG_CHANNEL=stack
DB_CONNECTION=sqlite
...

iOS 应用程序 / Swift

func descriptionForCurrentLocation(zipCode: String, completion:@escaping(_ placeDescription:String?) -> () ){
    
    let siteLink = "http://example.com/zip-code/" + zipCode
    let url = URL(string: siteLink)
    
    let task = URLSession.shared.dataTask(with: url!) { data, response, error in
        
        guard error == nil else {
            // ERROR
            completion(nil)
            return
        }
        guard let data = data else {
            // Return, data is empty 
            completion(nil)
            return
        }
        let json = try! JSONSerialization.jsonObject(with: data, options: [])

        guard let jsonArray = json as? [[String: String]] else {
            // Return, the object returned by the server is not in the right format.
            return
        }

        if jsonArray.isEmpty{
            // Return, array is empty.
            return
        }else{
            let description = jsonArray[0]["CityDescription"]!
            completion(description)
        }
    }
    task.resume()
}

如何根据随机密钥验证 HTTP 请求?

编辑:

仅作为记录,我在 iOS 应用程序中添加了 HTTP 标头。有关Salman Zafar如何在 Laravel 中进行验证的详细信息,请参阅s answer。

    let siteLink = "http://example.com/zip-code/" + zipCode
    let url = URL(string: siteLink)
    
    var request = URLRequest(url: url!)
    request.setValue("161jshghss", forHTTPHeaderField: "CustomKey")
    
    let task = URLSession.shared.dataTask(with: request) { data, response, error in 
    ... 
萨尔曼·扎法尔

您可以生成一个uuid用于验证请求并验证您可以使用以下代码的请求

use Illuminate\Http\Request;

class MyController extends Controller
{
    public function placeDescription(Request $request, $zipCode)
    { 
       if($request->hasHeader('CustomKey') && $request->header('CustomKey') === "161jshghss")
       {
        $placeInfo = InfoDB::where('ZipCode', $zipCode)->get();
        return ($placeInfo);
       }
       else
       {
         return response(['error' => 'Something is missing'], 403);
       }  
     }
}

你必须设置Custom Header你的ios应用程序与HeaderNameHeadervalue,然后你可以使用上面的代码。

谢谢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Laravel中验证请求用户?

来自分类Dev

如何在Laravel中验证补丁/请求请求

来自分类Dev

如何在Laravel中减少js / css上的HTTP请求

来自分类Dev

如何在Laravel中获取HTTP请求正文内容?

来自分类Dev

Laravel中的HTTP请求

来自分类Dev

如何在Laravel5请求类中验证Money

来自分类Dev

如何在Laravel中验证来自GET请求的输入

来自分类Dev

如何在Laravel Vapor应用程序中获取HTTP请求的IP?

来自分类Dev

如何在angularjs中限制$ http请求?

来自分类Dev

如何在golang中传递http请求?

来自分类Dev

如何在Telnet中创建HTTP请求

来自分类Dev

如何在http请求中设置边界?

来自分类Dev

如何在Rails中创建HTTP请求?

来自分类Dev

如何在JavaScript中编写HTTP请求?

来自分类Dev

如何在单元测试中验证Flurl Http中的请求正文内容?

来自分类Dev

如何在Laravel中处理DELETE请求

来自分类Dev

如何在Jmeter中同时请求AJAX和HTTP请求

来自分类Dev

如何在Jmeter中与HTTP请求同时请求AJAX

来自分类Dev

如何在HTTP DELETE请求中传递身份验证详细信息?

来自分类Dev

如何创建嵌套模型的验证以在Laravel中调用请求

来自分类Dev

在Laravel中验证数组请求

来自分类Dev

如何在Laravel中为软删除实施唯一的规则请求验证

来自分类Dev

如何在Laravel 8中使用请求进行验证?

来自分类Dev

如何在 Laravel 中验证 X 可编辑请求(服务器端)

来自分类Dev

如何在Laravel 5.1上使请求类型动态(验证)

来自分类Dev

在Laravel中对HTTP请求使用什么?

来自分类Dev

在Laravel中对HTTP请求使用什么?

来自分类Dev

Laravel中的HTTP请求无法正常工作

来自分类Dev

Laravel 5.8。如何在验证期间修剪 http 并检查表中的唯一性?

Related 相关文章

热门标签

归档