我正在写一个小sms网关,供几个项目使用,

我实施了laravel护照认证(client credentials grant token)

然后我将CheckClientCredentials添加到api中间件组:

protected $middlewareGroups = [
    'web' => [
       ...
    ],'api' => [
        'throttle:60,1','bindings',\Laravel\Passport\Http\Middleware\CheckClientCredentials::class
    ],];

逻辑工作正常,现在在我的控制器中我需要让客户端与有效令牌相关联.

routes.PHP文件

Route::post('/sms',function(Request $request) {
    // save the sms along with the client id and send it

    $client_id = ''; // get the client id somehow

    sendSms($request->text,$request->to,$client_id);
});

出于明显的安全原因,我永远不能使用消费者请求发送客户端ID,例如$client_id = $request-> client_id;.

有一种棘手的方法.
您可以在中间件CheckClientCredentials中修改句柄方法,只需添加此行即可.
$request["oauth_client_id"] = $psr->getAttribute('oauth_client_id');

然后你可以在controller的函数中得到client_id:

public function info(\Illuminate\Http\Request $request)
{
    var_dump($request->oauth_client_id);
}

php – Laravel Passport通过访问令牌获取客户端ID的更多相关文章

  1. ios – 签名无效:oauth_signature

    我正在尝试生成oauth_signature以使用FatsecretAPI,但是获得无效的签名错误–无法弄清楚原因.我尝试尽可能准确地遵循here所述的所有步骤(参见步骤2)来生成签名值.他们说:UsetheHMAC-SHA1signaturealgorithmasdefinedbythe[RFC2104]tosigntherequestwheretextistheSignatureBaseStr

  2. ios – Oauth突然无法使用iphone(仅安装了FS应用程序)

    我们的iPhone应用程序允许通过oauth通过Foursquare登录.它工作正常,最近停止工作.我们得到的错误是:连接失败:回调uri对此使用者无效.但是,如果用户没有在手机上安装foursquare应用程序,它可以像以前一样正常工作.似乎FS现在正在进行重定向来处理FS应用程序内部的oauth,并且在尝试返回到原始应用程序时失败.通过野生动物园它似乎工作.这是在ios9上.解决方案?

  3. iOS Swift在哪里存储用户登录数据或OAuth令牌?

    事情并不像在用户手机上存储登录数据的最佳做法那样清晰.有人建议将userID=123和loggedIn=true类型数据等数据存储在NSUSerDefaults数据中.然而根据我的理解,根据这篇文章https://www.andyibanez.com/nsuserdefaults-not-for-sensitive-data/,这些数据可以很容易地被操作所以问题是:当用户浏览各种屏幕时,持久登录数

  4. ios – 使用带有OAuth 2.0的Google API在iPhone中登录Gmail

    我找到了Google提供的服务,可以访问各种Google服务的GoogleApi.我可以在iPhone中设置一个项目,并为iOS应用程序和本机应用程序创建API访问.我想为我的iPhone应用程序使用本机API.它API为我提供了电子邮件,全名,名字,姓氏,google_id,性别,dob,profile_image.如何在我的iPhone应用程序,任何示例应用程序,可用的代码段中使用这些?

  5. ios – 如何确定OAuth令牌是否已过期?

    我的iOS移动应用程序消耗使用OAuth2.0协议实现的服务.OAuth访问令牌带有刷新令牌和expires_in字段.我在我的应用程序中保存了刷新令牌并访问令牌过期时间,但是在使用它们时并没有什么好主意.>那么使用这个expires_in的通常和最佳做法是什么?>如何识别我的访问令牌是否过期?>是否有常见的Web服务错误格式,表示我的访问令牌已过期?

  6. ios – 在本地应用和网站之间共享凭据

    解决方法关联域和共享Web凭据在这里似乎不是一个好办法.你有两个选择:>将OAuth访问令牌作为URL-QueryString-Param传递给网页浏览器.https://x.y.z/?access_token=abc您必须操纵嵌入的URL,并确保您的后端了解这一点.很常见和容易的方法.许多网站像Facebook和Google正在URL中传递访问令牌.>如果您使用的是应用内浏览器,则可以截取URL请求并自行添加授权头.参见thisUIWebView和thisforWKWebView

  7. ios – 使用Firebase登录Facebook.找不到OAuth重定向URI

    我正在关注Firebase提供的手册.然而,我似乎无法做到的早期步骤.手册告诉我我在哪里可以在Facebook上找到这个设置?

  8. swift – SafariViewController:如何从URL获取OAuth令牌?

    非常感谢!

  9. Swift 3.0字符串连接离开“可选”

    “随你”有人见过类似的东西?

  10. android – 如何从应用程序本身禁用Google Fit并撤消权限

    我已经设置了连接到GoogleFit的应用,可以读取和写入有关用户身体的一些数据.当用户在应用设置中停用Google健身时,我会尝试通过以下方式撤消我的应用权限:即使我可以成功读取/写入数据,禁用Fit也会返回错误:Edit1:添加了整个方法,其中可见,该客户端在我尝试禁用Fit时连接.解决方法如果我撤消了操作的GoogleFit方面的访问而不是调用disableFit()方法,我遇到了这个问题.

随机推荐

  1. php – 用户身份验证不会在Laravel包中持久存在

    谢谢事实证明问题在于新的Web中间件,将我需要会话数据的所有路由移动到路由组中,一切正常.

  2. php – 找不到laravel类(适用于localhost但不适用于DO服务器)

    这是一个重复的问题–例如:Laravel4migrations–classnotfound但是,我已经尝试了所有解决方案并且无法解决这个问题.脚本我在我的本地机器上创建了一个Laravel4项目–添加了一些类,控制器,视图等–项目运行良好.然后我将这个新的repo复制到我的DO服务器上–用composer等安装依赖项.该项目看起来不错,除了一个页面发出错误:您可以查看此页面here.我试过了…

  3. php – Laravel SSH服务器未存储在配置文件中

    我有一个涉及服务器管理的项目,我需要执行一些SSH命令.在Laravel我有SSH实用程序(远程),但我必须将配置放在一个文件中.我需要从数据库中连接存储在模型中的凭据.任何想法我怎么能这样做?

  4. php – 如何通过Axios将文件发送到Laravel

    我需要通过Axios将文件从客户端发布到服务器.这是我的Vuejs代码:这是我用于处理已发送文件的Laravel代码:但它始终返回否它不是文件.任何帮助将非常感激.您必须创建一个FormData对象并附加图像文件.一个例子是here.如果有效,请告诉我.

  5. php – Laravel API TokenMismatchException

    我有一个带有帖子数据的API调用;让我们说这是登录过程.使用Chrome的Postman扩展程序,我通过POST发送用户名和密码以登录用户.但是我得到了这样的信息:在我的基本控制器中,我有:当我用beforeFilter删除行时,一切正常.但这不是一个解决方案.任何POST调用都会收到此错误消息.我知道我需要这个_token.但是当我从API调用时,我如何获得此令牌?我知道我可以在Laravel中创建一个令牌,但是当我通过API从外部打电话时我怎么能这样做呢?

  6. php – Laravel重定向到一个路由,但随后apache给出了404错误

    这是我的最终(和工作)vhost配置:

  7. php – Laravel Collection键修改

    我使用Collection类中的filter方法从集合中删除一些对象.但在那次操作之后,有时会出现带钥匙的物体,例剩下1,4,5.我希望在过滤操作后总是有0,1,2,3等顺序的元素.有没有任何优雅的方法来做到这一点,而无需将表重写为新表?您可以使用LaravelCollection的values()方法以序列化顺序生成集合的键,如下所示:希望这可以帮助!

  8. php – Laravel 5,如何测试是否在控制器中选中了Checkbox

    如果选中复选框,我试图获取:在我看来:在我的控制器中:在web.PHP中:但不起作用.我该怎么办?谢谢你的答复.编辑1:这是我的形式很差的建设我相信你真正的问题是你有两种不同的形式.您的复选框采用一种形式,您的提交按钮采用第二种形式.我相信它们都需要采用相同的形式.否则,永远不会返回您的复选框状态,无论其状态如何.在您的视图中,尝试替换您提供的表单标记:

  9. php – Laravel 5 – 根据需要验证数组,但允许传递一个空数组

    我正在使用验证器验证Laravel5.4中的请求,请参阅文档:https://laravel.com/docs/5.4/validation#validating-arrays基本上,这是Controller中的代码:我想要求字段“items”的存在,并且这个代码可以实现,但问题是当“items”字段是空数组时验证失败,即,这是一种不受欢迎的行为.我知道这是“必需”参数的记录行为,但我没有看到任何

  10. php – Laravel扩展Form类

    我正在尝试扩展L4.1中的Form类,但我似乎错过了一些东西.我的文件基于API命名为FormBuilder.PHP,保存在app/libraries/extended/FormBuilder.PHP中.这实际上是我第一次尝试在Laravel中扩展核心类.我似乎无法指出如何正确扩展像这个Form类的核心类.编辑:我将“app/libraries/extended”添加到我的composer.jso

返回
顶部