我使用https://github.com/chregu/GoogleAuthenticator.php为我正在处理的Web应用程序构建了双因素身份验证.一切都有效,甚至代码都有效.现在我在不同的服务器中设置相同的代码并生成新的密钥并将其添加到谷歌身份验证器移动应用程序现在移动中生成的代码不匹配.
我通过比较两个服务器上的结果并注意到time()函数返回不同的时间(1小时差异),然后我强迫我的第二个服务器(谷歌代码没有工作)与第一个相同的时间,它工作.所以我真的很困惑这是某种时区问题吗?因为我真的需要这些服务器拥有自己的时区.
有什么工作吗?
我还跟着https://support.google.com/accounts/answer/185834?hl=en并同步了我的google身份验证器应用仍然无法正常工作.移动应用程序中生成的代码在一小时后在我的第二台服务器上运行.任何人都可以帮助我或建议我一个不同的方法.
这是我用来连接上面的库的代码
class googleAuthLibrary extends GoogleAuthenticator
{
public function getSecretKey()
{
$secretKey = $this->generateSecret();
return $secretKey;
}
public function getQRLink($username, $hostname, $secretKey)
{
$url = 'https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl=';
$qrCode = 'otpauth://totp/'.$username.'@'.$hostname.'?secret='.$secretKey;
$url = $url.$qrCode;
return $url;
}
public function getAuthCode($secretKey)
{
$authCode =$this->getCode($secretKey);
return $authCode;
}
}
Run Code Online (Sandbox Code Playgroud) php authentication google-authentication google-authenticator
我如何让进度条在詹金斯控制台日志中正确显示
我在 docker 容器中运行 jenkins master 和 Slave,我的构建工作是在测试之前安装 laravel。但是composer安装看起来非常丑陋,我很确定有一种方法可以让它看起来漂亮并且用户友好。
我什至尝试了 ansicolor 插件,但仍然没有成功,请参阅屏幕截图了解我遇到的问题
node {
stage...
stage...
stage('Build') {
ansiColor('xterm') {
sh 'composer install'
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个用户控制器,它返回用户列表,每个用户都属于不同的组。
例如:-$ groups = ['student_users'=> 1,'teacher_users'=> 2,.....]
我可以创建以下路线来访问它们
Route::get('users/{id}', [
'as' => 'user',
'uses' => 'Admin\UserController@listUser'
]);
Run Code Online (Sandbox Code Playgroud)
但是我想创建更多这样的用户友好或seo友好的说法
Route::get('users/student', [
'as' => 'student',
'uses' => 'Admin\UserController@listUser'
]);
Route::get('users/teacher', [
'as' => 'teacher',
'uses' => 'Admin\UserController@listUser'
]);
Route::get('users', [
'as' => 'student',
'uses' => 'Admin\UserController@listUser'
]);//by default shows students list.
Run Code Online (Sandbox Code Playgroud)
我想通过路由而不是通过URL传递ID。最好的方法是什么。
我在命名函数时遇到问题.我有一个课,我需要2个功能,如下所示.
class myclass {
public function tempclass () {
echo "default";
}
public function tempclass ( $text ) {
echo $text;
}
}
Run Code Online (Sandbox Code Playgroud)
我打电话的时候
tempclass('testing'); // ( called after creating the object )
Run Code Online (Sandbox Code Playgroud)
function tempclass()
正在被称为我有两个具有相同名称但不同参数的功能?
我有2个阵列
$array1 = array(
['2013-05-01']=>'test',
['2013-05-02']=>'testing',
['2013-05-03']=>'working',
['2013-05-04']=>'future test');
$array2 = array(
['2013-05-01']=>'1',
['2013-05-02']=>'done',
['2013-05-03']=>'code',
['2013-05-05']=>'release');
Run Code Online (Sandbox Code Playgroud)
我想加入这些数组,以便输出
$result = array(
['2013-05-01']=>'test 1',
['2013-05-02']=>'testing 2',
['2013-05-03']=>'working code',
['2013-05-04']=>'future test',
['2013-05-05']=>'release')
Run Code Online (Sandbox Code Playgroud)
我试过$ result = $ array1 + array2; array_merge(),array_combine()none给出了正确的结果.
你能帮我吗.
这可能是一个愚蠢的问题.
我试图了解这些对象调用是如何进行的.Laravel雄辩方法中的示例 http://laravel.com/docs/eloquent
$affectedRows = User::where('votes', '>', 100)->update(array('status' => 2));
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个自定义框架,我喜欢Laravel框架的想法.有人可以告诉我它是什么以及如何实现这一目标.
我在网站上运行了一个 jQuery UI 日期选择器,其中仅根据之前的下拉选择启用了某些日期(我使用 MySQL 查询来获取整年的日期)。收到日期后,它会传递给日期选择器,并且仅启用这些日期。我已经实现了所需的行为,但问题是当我获取整年的日期时,MySQL 查询需要很长时间才能获取日期。
我现在想要实现的是查询前 3 个月的日期并在 datepicker 上启用它们,一旦用户导航到接下来 3 个月的第 3 个月查询并在 datepicker 中设置日期。这样我就不会对数据库施加压力,而且日历加载速度也会更快。
这可能吗?
代码很长,我发布了启用/禁用日期的部分:
var datepickerDateFilter = function (date) {
var month = date.getMonth() + 1;
var day = date.getDate();
var date_string = date.getFullYear() + '-' + (month < 10 ? '0' : '') + month + '-' + (day < 10 ? '0' : '') + day;
if ($courseDates.length > 0 && $.inArray(date_string, $courseDates) != -1) {
return [true];
}
return [false];
}; …
Run Code Online (Sandbox Code Playgroud)