GraphQL 和 Laravel 如何进行授权?
Posted
技术标签:
【中文标题】GraphQL 和 Laravel 如何进行授权?【英文标题】:How do authorization with GraphQL and Laravel? 【发布时间】:2017-11-22 18:05:25 【问题描述】:我正在考虑在我的项目中应用 GraphQL 的可能性,该项目基于 Laravel 5.4。现在我用的是REST API,授权没有问题(I use Fractal):我按照角色和权限将数据集返回给用户,这符合应用的业务逻辑。
现在想用GraphQL,但是不明白嵌入业务逻辑和授权的机制,这样就可以返回一组数据,具体取决于请求数据的用户的权限。
请告诉我,如何做到这一点?将 GraphQL 集成到 Laravel 框架中是否有更好的实践?
【问题讨论】:
我刚刚在这里回答了一个类似的问题:***.com/questions/44641553/…。让我知道这是否能解决您的问题 【参考方案1】:如果您打算使用this 包,您可以轻松做到这一点。
例如,像这样定义多个方案: https://github.com/Folkloreatelier/laravel-graphql#schemas
然后在你的 routes/web.php 文件中定义
Route::get('/graphql/secret', ['middleware' => ['api:auth']], function ()
);
可以通过如下路径访问公共数据: http://your.domain/graphql?query=query+FetchUsersusersname
可以通过如下路径访问受保护的数据: http://your.domain/graphql/secret?query=query+FetchUsersusersid,email,name
【讨论】:
以上是关于GraphQL 和 Laravel 如何进行授权?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django GraphQL JWT 和 Graphene Relay 进行身份验证和授权
如何在不使用公用文件夹和 php artisan 的情况下在 laravel graphql-playground 中加载 schema.graphql