检查请求是来自手机还是网络

Jay*_*Jay 5 node.js express passport-local passport.js

在进行身份验证时,Passport 有没有办法检查请求是否来自移动或 Web 应用程序?因为如果请求来自网络,我想返回一个视图,否则返回一个 json 负载。

小智 5

这是我的意见,你可以检查请求标头中的用户代理,它看起来像这样(来自Windows):

用户代理:Mozilla/5.0 (Windows NT 6.1;Win64;x64) AppleWebKit/537.36(KHTML,如 Gecko)Chrome/63.0.3239.132 Safari/537.36

这是来自我的 iPhone

用户代理:Mozilla/5.0 (iPhone;CPU iPhone OS 10_3,如 Mac OS X) AppleWebKit/602.1.50(KHTML,如 Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1

这是安卓

用户代理:Mozilla/5.0 (Linux;Android 5.0;SM-G900P Build/LRX21T) AppleWebKit/537.36(KHTML,如 Gecko)Chrome/63.0.3239.132 Mobile Safari/537.36

这样你就可以从用户代理中找出哪个请求来自移动设备还是PC