小编Won*_*nka的帖子

React Native Change默认iOS模拟器设备

当我运行此命令时:

react-native run-ios
Run Code Online (Sandbox Code Playgroud)

我的应用程序默认在iPhone6模拟器设备中运行:

Found Xcode project RN.xcodeproj
Launching iPhone 6 (9.2)...
Run Code Online (Sandbox Code Playgroud)

如何在默认情况下让应用程序在不同的模拟器设备(如iPhone5s)中运行?

react-native

128
推荐指数
10
解决办法
6万
查看次数

从url获取远程图像的宽度高度

因此警报给出了宽度和高度的未定义值.我认为来自img.onload计算的图像的w和h值没有被传递给要返回的值,或者它可能在onload计算它们之前返回w和h :

function getMeta(url){
 var w; var h;
 var img=new Image;
 img.src=url;
 img.onload=function(){w=this.width; h=this.height;};
 return {w:w,h:h}    
}

// "http://snook.ca/files/mootools_83_snookca.png" //1024x678
// "http://shijitht.files.wordpress.com/2010/08/github.png" //128x128

var end = getMeta("http://shijitht.files.wordpress.com/2010/08/github.png");
var w = end.w;
var h = end.h;
alert(w+'width'+h+'height');
Run Code Online (Sandbox Code Playgroud)

如何让警报显示正确的宽度和高度?

http://jsfiddle.net/YtqXk/

javascript height image width

64
推荐指数
4
解决办法
8万
查看次数

Laravel 5.6 - 用于自助API的Passport JWT httponly cookie SPA身份验证?

注意:我在这个问题上有4个赏金,但下面没有提出的答案是这个问题所需要的答案.所需的一切都在下面的Update 3中,只是寻找要实现的Laravel代码.


更新3:此流程图正是我想要完成的流程,下面的所有内容都是原始问题以及一些较旧的更新.该流程图总结了所需的一切.

下面的流程图中的绿色部分是我知道如何做的部分.红色部分及其旁注是我正在寻找帮助完成使用Laravel代码.

在此输入图像描述


我已经做了很多研究,但是当使用Laravel和JWT httponly cookie进行自我消费的API时,信息总是很短而且不完整(大多数在线教程只显示JWT存储在本地存储中,这不是很安全).看起来像包含JWT by Passport的httponly cookie应该用于识别Javascript端的用户,当每次请求发送到服务器以验证用户是否是他们所说的用户时.

还有一些额外的东西需要全面了解如何使这个设置工作,我没有在一个教程中遇到这个包括:

  1. Laravel Passport(不是tymon auth)生成加密的JWT并将其作为httponly cookie发送,作为从JS端登录后的响应.使用什么中间件?如果刷新令牌添加更多安全性,如何实现?
  2. JavaScript(例如axios)api伪代码,用于调用auth端点,如何将httponly cookie传递给后端,以及后端验证令牌是如何有效的.
  3. 如果从多个设备登录单个帐户,那么设备被盗,如何撤销所有authed用户设备的访问权限(假设用户从他们可以控制的登录设备更改密码)?
  4. 什么会登录/注册,注销,更改密码,忘记密码控制器方法通常看起来像处理令牌的创建/验证/撤销?
  5. CSRF令牌集成.

我希望这个问题的答案可以作为一个易于遵循的指南,为未来的读者和那些正在努力寻找一个自我消费API的上述观点的答案.

更新1:

  1. 请注意我尝试过CreateFreshApiToken之前的功能,但是在撤销用户令牌时这不起作用(上面的第3点和第4点).这是基于此评论的核心laravel开发商,谈论时CreateFreshApiToken中间件:

由此中间件创建的JWT令牌不会存储在任何位置.它们不能被撤销或"不存在".它们只是为您的api调用提供了一种通过laravel_token cookie进行authed调用的方法.它与访问令牌无关.另外:您通常不会在发布它们的同一个应用程序上使用客户发出的令牌.您可以在第一方或第三方应用中使用它们.使用中间件或客户端发出的令牌,但不能同时使用两者.

所以似乎能够迎合第3点和第4点来撤销令牌,如果使用CreateFreshApiToken中间件则不可能这样做.

  1. 在客户端,Authorization: Bearer <token>处理安全的httpOnly cookie 似乎不是一种方法.我认为请求/响应应该包含安全的httpOnly cookie作为请求/响应头,像这样基于laravel文档:

使用此身份验证方法时,默认的Laravel JavaScript脚手架指示Axios始终发送X-CSRF-TOKEN和X-Requested-With标头.

headerswindow.axios.defaults.headers.common = {
    'X-Requested-With': 'XMLHttpRequest',
    'X-CSRF-TOKEN': (csrf_token goes here)
};
Run Code Online (Sandbox Code Playgroud)

这也是我寻找涵盖上述所有要点的解决方案的原因.道歉,我使用的是Laravel 5.6而不是5.5.

更新2:

似乎密码授予/刷新令牌授权组合是要走的路.使用密码授予/刷新令牌授权组合寻找易于遵循的实施指南.

密码授予: 此授权适用于与我们信任的客户交易,例如我们自己网站的移动应用.在这种情况下,客户端将用户的登录凭据发送到授权服务器,服务器直接发出访问令牌.

刷新令牌授权: 当服务器发出访问令牌时,它还会为访问令牌设置到期时间.当我们想要在访问令牌过期时刷新访问令牌时,使用刷新令牌授予.在这种情况下,授权服务器将在发出访问令牌时发送刷新令牌,该令牌可用于请求新的访问令牌.

我正在寻找一个易于实现,直接,全面的答案,使用密码授予/刷新令牌授权组合,涵盖上述原始5点的所有部分与httpOnly安全cookie,创建/撤销/刷新令牌,登录cookie创建,注销cookie撤销,控制器方法,CSRF等

csrf-protection laravel cookie-httponly laravel-5 laravel-passport

56
推荐指数
4
解决办法
4238
查看次数

Laravel - 渴望加载多态关系的相关模型

我可以在没有任何n + 1问题的情况下急切加载多态关系/模型.但是,如果我尝试访问与多态模型相关的模型,则会出现n + 1问题,而我似乎无法找到修复.以下是在本地查看的确切设置:

1)DB表名/数据

history

历史表

companies

在此输入图像描述

products

在此输入图像描述

services

在此输入图像描述

2)模型

// History
class History extends Eloquent {
    protected $table = 'history';

    public function historable(){
        return $this->morphTo();
    }
}

// Company
class Company extends Eloquent {
    protected $table = 'companies';

    // each company has many products
    public function products() {
        return $this->hasMany('Product');
    }

    // each company has many services
    public function services() {
        return $this->hasMany('Service');
    }
}

// Product
class Product extends Eloquent {
    // each product belongs to a …
Run Code Online (Sandbox Code Playgroud)

polymorphism polymorphic-associations eager-loading laravel eloquent

28
推荐指数
3
解决办法
2万
查看次数

React Native - 如何查看存储在AsyncStorage中的内容?

我AsyncStorage在React Native中保存了一些项目,我正在使用chrome调试器和iOS模拟器.

如果没有原生的反应,使用常规的Web开发localStorage,我能够看到存储的localStorage项目Chrome Debugger > Resources > Local Storage

任何想法如何查看React Native AsyncStorage存储的项目?

react-native asyncstorage

26
推荐指数
5
解决办法
2万
查看次数

Laravel 5.3 - 用户收集的单一通知(关注者)

当我有一个notifiable用户时,notifications会插入表格中的一个条目,以及一个完全通过渠道工作的mail/ smssent.

问题是当我有一个user集合,一个跟随我的1k用户列表,我发布了一个更新.以下是Notifiable针对多用户案例建议使用特征时发生的情况:

  1. 1k mails/ sms发送(问题不在这里)
  2. 将1k通知条目添加到数据库notifications表中

似乎将1k通知添加到DB notifications表中并不是最佳解决方案.由于该toArray数据是一样的,一切都在数据库中的其他notifications表是1K行相同,与仅作为区别notifiable_id的user notifiable_type.

开箱即用的最佳解决方案是:

  1. Laravel会接受这样一个事实 array notifiable_type
  2. 将单个通知另存为notifiable_type user_array或user为notifiable_id0(零仅用于表示它是一个多重通知的用户)
  3. 创建/使用另一个表,notifications_read使用notification_id它刚刚创建的foreign_key并插入1k行,只有这些字段:

    notification_id notifiable_id notifiable_type read_at

我希望有一种方法可以做到这一点,因为我在我的应用程序中的这一点,并希望使用内置的通知和通道,因为我正在开火emails/ sms通知,这是好的重复1k次我想,但是相同的数据输入到数据库中是需要优化的问题.

任何想法/想法如何在这种情况下进行?

php laravel laravel-5 laravel-5.3

22
推荐指数
2
解决办法
4841
查看次数

React Native - CSS:没有边框的last-child?

在React Native中,我有一个静态的书籍数组,我映射并以堆叠的行输出,如下所示:

return books.map((book, i) => {
  return(
    <View style={styles.book} key={i}>
      <Text style={styles.book}>{book.title}</Text>
    </View>
  );
});
Run Code Online (Sandbox Code Playgroud)

我还在每本书上都有一个下边框styles.book:

book: {
  borderBottomWidth: 1,
  borderBottomColor: '#000000'
}
Run Code Online (Sandbox Code Playgroud)

我需要列表中的最后一本书没有底边框,所以borderBottomWidth: 0我认为我需要申请它吗?在React Native中,如何让列表中的最后一本书没有底部边框?(在正常的CSS中,我们使用最后一个孩子)

reactjs react-native

20
推荐指数
2
解决办法
2万
查看次数

如何使用javascript将iPad Pro检测为iPad?

我们能够使用 javascript 检测 iPad 设备,如下所示:

function isDeviceiPad(){
    return navigator.platform.match(/iPad/i);
}
Run Code Online (Sandbox Code Playgroud)

这在检测 iPad 设备时效果很好,但是当我们从 中检查时iPad Pro (10.5 inch),它没有检测到它是 iPad。

为了进一步调查,我们深入研究了navigator对象,检查了platform和userAgent,并得到了以下结果:

navigator.platform = 'MacIntel';
navigator.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) 
 AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15)';
Run Code Online (Sandbox Code Playgroud)

问题是navigator.platform = 'MacIntel'(与 MacBook Pro 相同)返回而不是iPad. 我们需要一种方法来检测这是 iPad 而不是 MacBook Pro,但导航器似乎iPad不像旧 iPad那样返回。

知道我们如何解决这个问题吗?

javascript ios ios13 ipados

19
推荐指数
4
解决办法
3万
查看次数

Sphinx vs. MySql - 搜索朋友列表(效率/速度)

我正在将我的应用程序移植到MySQL的Sphinx中,并且很难解决这个问题,或者甚至需要移植它(我真的想知道是否值得使用sphinx这个特定的效率案例来提高效率/速度):

users
uid uname
  1    alex
  2    barry
  3    david

friends
uid | fid
  1     2
  2     1
  1     3
  3     1
Run Code Online (Sandbox Code Playgroud)

细节是:
- InnoDB
- 用户: uid上的索引,uname上的索引
- 朋友: uid上的组合索引,fid

通常,使用mysql搜索所有alex的朋友:

$uid = 1
$searchstr = "%$friendSearch%";
$query = "SELECT f.fid, u.uname FROM friends f 
          JOIN users u ON f.fid=u.uid
          WHERE f.uid=:uid AND u.uname LIKE :friendSearch";
$friends = $dbh->prepare($query);
$friends->bindParam(':uid', $uid, PDO::PARAM_INT);
$friends->bindParam(':friendSearch', $searchstr, PDO::PARAM_STR);
$friends->execute();
Run Code Online (Sandbox Code Playgroud)

使用sphinx vs mysql找到alex的朋友是否更有效率,或者这会是一种矫枉过正?
如果sphinx会更快,因为列表会让成千上万的人看到,索引查询会是什么样子?我如何删除与sphinx不再存在的友谊,我可以在这种情况下有一个详细的例子吗?我应该更改此查询以使用Sphinx吗?

mysql indexing search sphinx

15
推荐指数
3
解决办法
2080
查看次数

React Native - ScrollView中ListView的分页?

我ListView在单个ScrollView组件中有3 个组件,如下所示:

<ScrollView>
  <Header />
  <ListView onEndReached={() => alert('load more 1')}/>
  <ListView onEndReached={() => alert('load more 2')}/>
  <ListView onEndReached={() => alert('load more 3')}/>
  <Footer />
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

该Header组件有一些共同的内容,还有3个选项卡,触发显示相应的ListView

问题是任何ListView与onEndReached={() => alert('load more 1')}从未运行警报,所以我向下滚动,撞上列表视图结束时,我不能加载更多.删除包装ScrollView和警报运行,但常见的Header不滚动,因为我们刚刚删除了包装ScrollView.标题需要使用listview滚动,这就是为什么我包装了需要滚动的所有内容ScrollView.

重要提示: 我真的不能用ListView同renderHeader={this.header},对于这种情况.因为,即使Header将滚动,它会重新描绘的共同Header和3个选项卡每个ListView每次ListView渲染,而不是一次.因此Header,每次每次重新渲染都ListView不会为应用程序削减它.

寻找这个问题的解决方案,其中Header带有listviews 的滚动和onEndReached触发可见的滚动ListView.

react-native react-native-listview react-native-scrollview

15
推荐指数
1
解决办法
4887
查看次数