使用 Lumen + Stormpath 为移动 App 提供后端 API

lumen-stormpath
1、概述

Stormpath 致力于为开发者提供用户认证 API,通过 Stormpath 我们可以快速搭建起用户认证系统。最近,Stormpath 官方将Lumen 集成到 Stormpath 的 PHP SDK 中(在此之前 Laravel 与 Stormpath 的集成已经做好:stormpath-laravel),这样,你只需要花费几分钟的时间就可以为移动 App 提供一个 PHP 后端,通过与 Lumen 的集成(stormpath-lumen),你可以快速使用 OAuth Token 实现用户注册及登录功能。

本教程将会将会你如何安装一个新的Lumen应用并配置在移动App中使用。

2、安装Lumen应用

在正式开始之前,我们假设你已经具备以下知识储备:

  • 对Lumen的基本了解(Lumen中文文档:http://laravelacademy.org/lumen-docs
  • PHP 5.6及以上版本的开发环境
  • PHP OpenSSL扩展
  • PHP PDO扩展
  • PHP Mbstring扩展
  • 基本的命令行知识
  • 已经安装Composer
  • 已经安装并配置好Git

如果没有请参考相应文档或自行Google。

Lumen的安装这里我也不想赘述,请自行参考官方中文文档:http://laravelacademy.org/post/3361.html

这里我们使用Lumen安装器安装新的Lumen应用:

lumen new lumen-stormpath-mobile-backend

安装完成后我们在浏览器中访问http://lumen-stormpath-mobile-backend.dev(我使用的是Mac Valet开发环境),页面显示如下信息:

Lumen (5.2.6) (Laravel Components 5.2.*)

表明安装成功。

3、安装Lumen Stormpath

Stormpath秉承的宗旨是创造便于使用和理解的有用工具,Stormpath Lumen也不例外。我们使用Composer来安装Stormpath Lumen扩展包,首先在根目录下composer.json文件的require部分新增如下这行:

"stormpath/lumen": "^0.1"

然后运行composer update命令执行更新操作:

composer-install-stormpath-lumen
安装完成后,需要到bootstrap/app.php中可伅o9readcrumb"_o要se0x279o9 property=/4//githutml" target="_blank">Mac Valet开发环境),页面显示如下信息:

8iders\:Ser端 /p>8ider::tent/); 显示如下信息:

8iders\uSer端 /p>8ider::tent/); 显示如下信息:

8iders\f=c.sSer端 /p>8ider::tent/); 显示如下信息\tle="View\all p\Stener(\tle="ViewSer端 /p>8ider::tent/);img class=="ht8c%6%89%aopertyarge开发环mpath/stormpavel,keyml" ty=的e

/pre>

.envblank">MacLumentle="View vel。

STORMPATH_APPLICATION_HREFlank">Macelacoperty=tle="Viewo9jCo建stormp们在比all mpath-mCo建stormp">


bootstrap/app.php

<账户target="

  • 对rong> <路由会menst.or同avelaca由于n" tit我lacarge.or同mpo79tStost基sts i能只想5.2送stormpPOST请求=/4//gilectiumen": "路由l pos6%89%a9推荐e

    fresh_', 'bmen": ">PHPumen

    在正请求=s i能alacade子 i

    superP4kei0rd!", inhe"elac

    /vel
    mailto:brian@stormpath-">brian@stormpath-ect-", inhe"grant_ag-a

    'kei', < }img class=对们pr返回。eyJraWQiOiIxUE4zRlhJMFU3OUUyTUhDRjZYVVlHVTRaIiwiYWxnIjoiSFMyNTYifQ.eyJqdGki...3In0.i1diirJdpcQh1TA8oIya8-86tes_xlauaTwsuKS67gY", inhep>exps_ibfresh_', 'b

    eyJraWQiOiIxUE4zRlhJMFU3OUUyTUhDRjZYVVlHVTRaIiwiYWxnIjoiSFMyNTYifQ.eyJqdGki...AxfQ.oMEcM9T1K8SptKxKLaUYiJ37whlvhGVoFcRDLAxzjw8", inhep>', 'b_ag-a

    Bleshe< }img clas秉承的宗旨是创4便于使5保护路由,Stormpath Lumen也不 all p/code>部还mpath/s几rmp路由acL件过滤器avelac些acL件Stomy.org/lL件stode in Ong>=路由帍想st期望某些路由只对n" titumen嚄放挨 in Ong>e>

    stormpath-a安ank">MacL件S路由avelacademy.当传递/4//giaccess_', 'bmen": "lacargstormp/4//giA .entizn> n": "Sll pos候l po/lL件s基于确保经过n" titLumen庉能"http:在e>

    stormpath-gm meank">MacL件l p该o/lL件s判断述传递/4//giaccess_', 'bmen": "tLumen庉能"http:Stormpath秉承的宗旨是创5便于使6ath-lun也不例ng>部o/lL"a常a>在槣7论aiOS还mAndroid/%e6m-obj详情请自对/vel),这/li>astormpath-使android/f="https://github.cndroidavelaconenttoevel),这/li>astormpath-使ios/f="https://github.iOSavelaconenStormpattent">

    学folion:open<  环境),页面显示如下信息 PHP 7tage部分 c%e8%88%aa%e8taURfix inhepppppppppppppppppppp标签 i my.org/post/author/nonfu">学扩<  环境),页面显示如下信们可以k' hrtageApp 提供一个 PHP 后端,通过k' hrtageApp 提供一个 PHP 后端,钟的时k' hrtageApp 提供一个 PHP 后端,oads/2k' hrtageApp 提供一个 PHP 后端,册及k' hrtage<何安,lank">App 提供一个 PHP 后端,为开发k' hrtageApp 提供一个 PHP 后端,包,首先在根目录k' hrtage部分,lank">App 提供一个 PHP 后端,"http://laravelacak' hrtage inheppppppppppppppppppppc%e8%88%aa%eshesh-jie%ai分享 i App 提www.jie%ai借使hesh"an> jt>_jie%ai="https://github./aa inhespan> <"> <%e8%88%aa%e8taURfix inheppppppppppppppppppppc%e8>声明 i 原创ave章<:<许 prty 转载/a> nt"footh

    学fire<  1 人觉得e tle" " />ottomsteli> 稍等dcrumb"> tn tn-success a宗like_eas-pos tle" 学stors-up tle" " />ottomsteli> 稍等dcrumb"> tn tn-success tn-block a宗like_eas-pos tle" 学stors-up学fire<  1 觉得e y="v:titleStormpath le -ttp:ious ttp:ious"" target="_blank">Stormpath 致T01:39:07+00:00">2016ttp:学arrow.5s emenu-item m-item 对ttps://gosts方将Aas-s e>com/code>部Co建<删除们视图^0.1"Stormpath 致T01:39578+00:00">2016nsteom text-mu>部自g>学arrow.se-inmenu-item m-itemid="contev:titl我readcrle -bowu-%e5%adisplay --> wepos- .ent_kb_t" clafy --> - .ent_avle"r ostedth.jpg pu安5s eme/li> iv> <-oau writax-date published" datetime="2016-05-17T01:3- .entry-heade71bject eas-poss74_04 clafy --> - .ent_kb_tabiome/li> pd="mePHP工

    pru> -> -rmpattrt contai - .ent_kb_tabimg ss ostedse-inme glyphicon-calen tn-ype="ng" width=="http://laravelte published" datetime="2016-05-1dcrumb"> tn tn-ibfo bstaxoti过与 LumWomy menuy 学homemenu-item menitle" href="http://laravedth=="http://laravelt contai 8taURfix g档-ad=singl>magle-: all 0:ordele="bcom/staasyncrmpath/ipt_kad2.g档synd%3A%2F%-使pt_kadacadadbyg档.js ar
    ar as-post-thucru-ar ar d="ro e-fumenuar h="200"lara'js?ver=1.6.0'>0.gravle"r-使avle"r/?s=32ity: 0d=reStity: 0r=g'stormpat=1.6.0'>0.gravle"r-使avle"r/?s=64&0d=reStiamp0r=g 2x'-> 'avle"r avle"r-32 photo avle"r-
    发型men<乱_Qu

    ss="site-codisplay --> codisplay --> d="ro footh " claf%bc%e8%88%aa%epu安se-inme/li> h="%e8%88%aa%ereply ostedse-inme展包'nofolow'-> ' 学reply<  回复id="co> nss="site-contelay --> published" datetime="2016-05-17T01:39:05+00:0#ar by /laravelacrg/post/4374.html" rel="bookmark">