如何将Carbon嵌入公司当前项目中使用?
By lzx123456
at 2016-11-29
2人收藏 • 3897人看过
公司要求现有项目的用户与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 :
一言不合就换公司…