Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何在Chrome扩展的url中添加用户名?_Google App Engine_Url_Google Chrome Extension - Fatal编程技术网

Google app engine 如何在Chrome扩展的url中添加用户名?

Google app engine 如何在Chrome扩展的url中添加用户名?,google-app-engine,url,google-chrome-extension,Google App Engine,Url,Google Chrome Extension,我正在开发一个以谷歌应用程序引擎为后端的chrome书签扩展。我现在是唯一的用户,但我认为如果将来有其他用户,url需要包含用户名,以便扩展与后端交互。所以我想改变一下 http://ting-1.appspot.com/useradminpage 到 其中“user_name”是gmail用户id 但我查看了twitter的url,我发现他们 http://twitter.com/#!/user_name/ “#!”的目的是什么?在这种情况下,我的计划足够好吗 URL中的#表示“片段标识符

我正在开发一个以谷歌应用程序引擎为后端的chrome书签扩展。我现在是唯一的用户,但我认为如果将来有其他用户,url需要包含用户名,以便扩展与后端交互。所以我想改变一下

http://ting-1.appspot.com/useradminpage

其中“user_name”是gmail用户id

但我查看了twitter的url,我发现他们

http://twitter.com/#!/user_name/
“#!”的目的是什么?在这种情况下,我的计划足够好吗

URL中的
#
表示“片段标识符”。历史上,这被用来标识由“锚定”标记标识的文档的一部分,但最近webapp开发人员开始使用它将有关页面状态的信息传递给页面中运行的Javascript代码。之所以使用这种方法,是因为Javascript代码可以修改当前页面的片段,而不会导致页面重新加载——这意味着它可以在您浏览webapp时更新,并直接返回到重新加载页面时的位置

当浏览器加载页面时,该片段不会发送到服务器,因此Twitter的服务器只会看到对Twitter.com的请求;这取决于页面中的Javascript代码来检查片段并确定之后要做什么

在您的特定情况下,假设您正在使用App Engine用户服务对用户进行身份验证,您有许多选项可以选择如何在URL中区分用户:

  • 使用他们的电子邮件地址。理论上,这可能会改变,用户可能不希望他们的地址出现在他们将共享的URL中。如果URL是私有的,这或多或少是一个没有意义的问题
  • 使用他们的用户id。这是不透明的,没有透露关于用户的有用信息,所以它是安全的,但也没有意义,很难记住
  • 让用户为他们的URL选择一个昵称,就像Facebook和其他服务一样,先入先得

  • 仅使用gmail用户名是不够的(如果可能的话),您需要实现一些服务器端授权。@serg,好的,我从后端注销,并使用扩展名保存页面。它仍然将指向url的链接保存在
    background.html
    中,但没有我的用户名(在“所有者”字段中有)。那么,这是如何工作的呢?如果另一个用户正在使用扩展,会发生什么?我想把
    background.html
    中的url改成
    http://ting-1.appspot.com/user_name/useradminpage
    这样每个用户都可以在其用户名下保存书签。这是一个好的解决方案吗?谢谢你的评论。问题是如何识别用户。Url格式是无关的,你可以使用任何你喜欢的。您不能只传递用户名,因为我可以轻松阅读所有其他用户的书签。除非是需要的行为,否则您需要在服务器上实现某种授权(用户名/密码,oauth)。然后,要接收用户的书签,您可以将用户名和密码传递给服务器,或者将oauth令牌传递给服务器。@serg,是的,我还没有很好的用户授权实现。我只是在使用谷歌应用程序引擎附带的用户服务。因此,按照我现在的方式,非用户可以查看主页,只是为了了解应用程序。否则,用户需要使用gmail帐户登录才能查看其书签。因此,如果我没有登录,我将无法看到此页面上的书签。那么,如何让扩展知道为每个用户向哪个用户写入书签呢?谢谢你的评论!抱歉,我不熟悉gmail登录或应用程序引擎的工作原理。
    http://twitter.com/#!/user_name/