我目前正计划开发一个PHP应用程序,该应用程序需要存储外部服务的用户密码,以便在用户登录我的应用程序时可以同时登录.
我需要将密码存储在一个安全的,即非纯文本中,而不是base64编码,但也需要以应用程序的方式以纯文本形式访问,无论如何.
我只能想到以下内容:
当用户将其外部服务的凭据添加到其帐户时,他们会重新输入我的应用程序的密码,并且(以加密形式)用于以某种方式"加密"外部服务的密码,但是以某种方式让它仍然可访问.
有没有人想过这是可能的,还是潜在的解决方案?
谢谢
另外:值得注意的是,数据将通过SSL连接发送.
出于好奇:比如说; Google Mail,您可以将电子邮件帐户添加到您的Google Mail帐户,以便检查所有帐户.有没有人对Google如何存储您添加的帐户的密码有任何想法?
我正在编写一个混合移动应用程序,它使用 HTML 5 数字字段来显示正确的键盘。该应用程序有一个屏幕,其中的值实时更新,允许小数位。
需要明确的是,小数位有效,并且可以输入 -这不是问题。
该应用程序是用 AngularJS 编写的,我尝试直接从元素中使用 jqLite 获取值,并通过 ng-model 使用分配的范围值。
它的行为方式如下:
1
,值为1
2
,值为12
3
,值为123
.
,value 是undefined
根据 Angular 的,""
直接取值的时候。4
,值为123.4
5
,值为123.45
通常这不会是一个太大的问题,但我试图在无效输入进入 Angular 之前强制拒绝它。我采取的方法是隐藏数字输入,并显示其后面的有效输入,这样看起来他们正在打字并且只能输入有效的输入。这非常有效,直到他们输入 a .
,然后数字就会消失,并在他们继续时返回。
有没有办法从 HTML 5number
类型输入中获取值,而.
后面没有任何值?
如果没有,是否有一种方法可以在输入进入 Angular 之前拒绝输入(在按下 keydown 时,preventDefault 不起作用,因为没有可靠的方法来获取类型字段中的完整当前输入number
)?
我知道 func 和 method 之间的区别。但我对以下之间的用法感到困惑:
prod:=Product{"title","brand","model"}
prod.Add()
Run Code Online (Sandbox Code Playgroud)
或者:
prod:=Product{"title","brand","model"}
products.Add(&prod) // products is package
Run Code Online (Sandbox Code Playgroud) 我正在投资组合网站,网站相当简单,大部分工作都在画廊.我有一组数据库表所有链接起来以不同的方式检索和过滤画廊,从顶部,它如下:
GalleryCategory
- > Gallery
- >GalleryImage
我面临的问题只出现在图库类别页面上,我正在查看给定类别中的所有图库,然后,图库中的图库图像返回.
我的控制器目前看起来像这样:
public function galleryCategoryAction($categoryId)
{
$em = $this->getDoctrine()->getManager();
$category = $em->getRepository('SeerUKDWrightGalleryBundle:GalleryCategory')->findById($categoryId);
$galleries = $category->getGalleries();
$galleryImages = [ ];
foreach ($galleries as $i => $gallery)
{
$galleryImages[$gallery->getId()] = $em->getRepository('SeerUKDWrightGalleryBundle:GalleryImage')
->findOneByGalleryId($gallery->getId());
}
return $this->render('SeerUKDWrightGalleryBundle:Gallery:category.html.twig', array(
'category' => $category,
'galleries' => $galleries,
'galleryImages' => $galleryImages
));
}
Run Code Online (Sandbox Code Playgroud)
现在,尽管这确实有效,但我确实想要它,我觉得它只是......错了!获得一个类别的画廊是美观和干净的:
$category = $em->getRepository('SeerUKDWrightGalleryBundle:GalleryCategory')->findById($categoryId);
$galleries = $category->getGalleries();
Run Code Online (Sandbox Code Playgroud)
但是,我看到获取每个图库的第一个图像的唯一方法是循环它们并检索每个实体.就像我说的,这似乎是错的.
唯一的另一个改进我的建议就是使用库实体中的实体管理器来获取实体中的图像,这当然会破坏Doctrine用于的目的.
总之,我该如何做得更好?必须有一个地方可以做得更好,我只是Symfony的新手.查看文档没有帮助...
我忘了提及,仍然能够使用实体的能力是必要的,我在稍后使用的实体上有一些方法.例如,在GalleryImage实体中,我有方法来获取图像的系统路径和Web路径.我仍然需要能够使用它们.
就像标题所说的那么简单.我的意思是我如何得到当前的相对URL,包括文件名(如果有的话),即下面强调的一切:
http://hostname/app/app_dev.php/path/to/some/action?even=a%20query%20string
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
现在,如果您不需要该文件,获得RequestStack,获取当前请求并在服务中使用类似的内容,这很容易:
$request->getPathInfo();
Run Code Online (Sandbox Code Playgroud)
但是在我这个问题中的当前例子中会带来以下内容:
/path/to/some/action?even=a%20query%20string
Run Code Online (Sandbox Code Playgroud)
没有/app_dev.php,这对我来说至关重要.我已经筋疲力尽的另一种选择是使用路由器来生成当前路由,它在某些方面确实很好用,它确实显示了文件名,但是如果查询字符串的某些部分是'n',还有其他一些问题.路由中定义的t包含在当前请求中,然后它不会显示在此结果中.
所以,让我再次在上面的例子中假装even
查询字符串没有包含在路由中,我无法生成它,这个方法只返回这样的东西:
/app_dev.php/path/to/some/action
Run Code Online (Sandbox Code Playgroud)
当然,这仍然不理想.
那么,我怎样才能可靠地获取我在这里寻找的所有东西呢?
我想回复PHP中的一些HTML,其中包含一个带有"<<< Back"文本的链接.我无法正确显示'<<<'.
有人有什么想法吗?这是我目前的代码:
$paginationDisplay .= ' <span class="paginationNumbersbn"> <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> '<<<'Back</a></span> ';
Run Code Online (Sandbox Code Playgroud)