swift 如何通过链接实现文档共享?

ergxz8rk  于 2023-08-02  发布在  Swift
关注(0)|答案(1)|浏览(118)

如果我想为文档生成可共享的链接,我可以简单地使用文档id website.com/shared/:id

class Item: Object, ObjectKeyIdentifiable {
    @Persisted(primaryKey: true) var _id: ObjectId
    @Persisted var userId: String
    @Persisted var name: String
}

字符串
但是,如果恶意用户发现了文档ID,我将无法生成新的链接。所以,我正在考虑有一个单独的共享ID website.com/shared/:shareId

class Item: Object, ObjectKeyIdentifiable {
    @Persisted(primaryKey: true) var _id: ObjectId
    @Persisted var userId: String
    @Persisted var name: String
    
    @Persisted var shareId: ObjectId // or UUID or string
}


可以简单地使用ObjectIdUUID吗?
我试着在Google Docs上生成一个链接,它们似乎没有使用单独的ID。

编辑时,链接为https://docs.google.com/document/d/1HDPFRcAxzeOCVyil9OEunOcFO_vknq_kBDYGFysb35A/edit,共享链接为https://docs.google.com/document/d/1HDPFRcAxzeOCVyil9OEunOcFO_vknq_kBDYGFysb35A/edit?usp=sharing
是否有任何分享的最佳做法?我无法找到关于这个主题的太多信息。

2w2cym1i

2w2cym1i1#

MongoDB ID是guessable。你可以有一个单独的共享id字段,使用UUID更难猜到,或者使用一个加密安全的随机数生成器,不保证是唯一的website.com/:documentId/:secureToken。(在服务器上,验证请求中的令牌与数据库中的令牌相同)
最好有一组协作者,并生成可能过期或容量最大的邀请链接。

相关问题