如何将Carbon嵌入公司当前项目中使用?
By lzx123456
at 2016-11-29
2人收藏 • 3311人看过
公司要求现有项目的用户与Carbon论坛的用户统一,这到是好办,数据表复制一份改改字段就行了;然后要求公司项目的用户进入网站后要自动登录上Carbon论坛里,于是做了代码改动,用用户名自动登录,贴出改动代码(common.php)如下:(用户到是查出来了,问题是回帖等功能都不好使,$CurUserID总是为空...求助...)
() { = . = header()header()= ()= ()= intval(())(!|| !|| !|| ([]) || abs(- ) > || !(md5(. [] . ))) { ()} } ([] == [] || (![] && )) { = . = header()} { = htmlspecialchars(trim(()))() { = ->(. . ( => ))() { = * + = md5([] . [] . . )(( => []=> => ))} } = . = header()}
- 登录后方可回帖
$mobileUserName = htmlspecialchars(trim(Request('Get', 'username'))); if ($mobileUserName) { //查询用户信息 $DBUser = $DB->row("SELECT ID,UserName,Salt,Password,UserRoleID,UserMail,UserIntro FROM " . PREFIX . "users WHERE UserName = :UserName", array( "UserName" => $mobileUserName )); if ($DBUser) { //设置Cookie $TemporaryUserExpirationTime = $Expires * 86400 + $TimeStamp; $TemporaryUserCode = md5($DBUser['Password'] . $DBUser['Salt'] . $TemporaryUserExpirationTime . SALT); SetCookies(array( 'UserID' => $DBUser['ID'], 'UserExpirationTime' => $TemporaryUserExpirationTime, 'UserCode' => $TemporaryUserCode ), 30);//过期时间30天 //设置用户信息 $CurUserInfo = $DBUser; //当前用户信息,Array,以后判断是否登陆使用if($CurUserID) $CurUserRole = 1; $CurUserID = $DBUser['ID']; $CurUserExpirationTime = $TemporaryUserExpirationTime; $CurUserCode = $TemporaryUserCode; }
$mobileUserName能够拿到传值,也能从数据库查出用户信息,UserID正常,但是到了具体页面上再操作时$CurUserID就取不到;
现在公司的系统是.net写的,数据库用的sqlserver,能做SSO?
回复#3 @lzx123456 :
$Expires你有定义吗?
回复#3 @lzx123456 :
SSO无所谓语言,不同语言的平台都可以接入的。
$Expires = min(intval(Request('Post', 'Expires', 30)), 30); //最多保持登陆30天
页面上不做选择,默认30天;
我大概知道是什么原因了,Cookie的问题,原login登录成功后做了一次重定向
回复#5 @lincanbin :
当前问题解决了,谢谢!期待IOS版本发布!
回复#7 @lzx123456 :
你这个登录只靠一个$mobileUserName,感觉一点都不安全啊。
回复#8 @lincanbin :
如果放到web上确实是的。公司的需求是这样:web以及wap必须正常登录进入,app中做用户同步功能,所以我在这里:
([] == [] || (![] && )) { = . = header()}
做处理,接收到mobileUserName表明是在app中访问,否则是wap访问,这样的话只相当于在app的webview中开通的SSO功能,这样做怎么样
elseif ($_SERVER['HTTP_HOST'] == $Config['MobileDomainName'] || (!$Config['MobileDomainName'] && $IsMobile)) {
$TemplatePath = __DIR__ . '/view/mobile/template/';
$Style = 'Mobile';
header('X-Frame-Options: SAMEORIGIN');
}
回复#11 @lincanbin :
恩,对,好,我和.net沟通下。谢谢你!carbon当真很好,计划出IOS版本吗?
回复#12 @lzx123456 :
有计划,但是目前还没iPhone。
回复#13 @lincanbin :
我会一直关注Carbon的动态,祝你工作顺利,祝愿Carbon项目屹立不倒!
回复#14 @lzx123456 :
谢谢
这年头用.net的公司不多了吧。。。为什么不用开源的PHP和MySQL(或者MariaDB)?Linux也是免费开源的,用CentOS就好了,还省了买Windows Server和SQL Server的费用。
回复#16 @ivanilla :
我也是这么认为的,但老板是.net出身,公司的web、CS端、API开发全是.net,木有办法
回复#17 @lzx123456 :
你可以选择换家公司
回复#18 @ivanilla :
一言不合就换公司…