tasks/register/compileAssets.js
module.exports = function (grunt) { grunt.registerTask('compileAssets', [ 'clean:dev', 'jst:dev', 'less:dev', 'copy:dev', 'coffee:dev', 'apidoc:myapp' // <-- apidoc ]); };api/controllers/api/oauth.json Ò»¸öAPIÎĵµÊ¾Àý£¬Ïêϸ²ÎÊý¼ûapidoc¹ÙÍø¡£ /** * @api {POST} /api/oauth/token Token * @apiName Token * @apiGroup Oauth * @apiVersion 1.0.0 * @apiDescription »ñÈ¡Token * @apiPermission anyone * * @apiParam {string} client_id client_id * @apiParam {string} client_secret client_secret * * @apiParamExample {json} ʾÀý * POST /api/oauth/token * { * "client_id": "client_id", * "client_secret": "client_secret" * } * * @apiSuccess (³É¹¦) {number} code 0 * @apiSuccess (³É¹¦) {string} msg success * @apiSuccess (³É¹¦) {Object} data Token¶ÔÏó * @apiSuccess (³É¹¦) {string} data.token Token * @apiSuccess (³É¹¦) {number} data.expires ʧЧʱ¼ä(24Сʱ)Çë±£´æÈôÊ§Ð§ÖØÐ»ñÈ¡ * @apiSuccess (³É¹¦) {number} data.appid AppId * @apiSuccessExample {json} ʾÀý * HTTP/1.1 200 OK * { * "code": 0, * "msg": "success", * "data": { * "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOjIsImV4cCI6MTQ2NDE1NjA2OTg3Nn0.4i_o7gCjCKvOImSi4peCMgCUrzpdgbtmvMECKf5wkqE", * "expires": 1464156069876, * "appid": 2 * } * } * * @apiError (ʧ°Ü) {number} code 1:client_id²»´æÔÚ 2:client_id½ûÓà 3:client_secret´íÎó 4:²ÎÊý´íÎó * @apiError (ʧ°Ü) {string} msg ´íÎóÎÄ×ÖÃèÊö * @apiErrorExample {json} ʾÀý * HTTP/1.1 200 OK * { * "code": 1 * "msg": "client_id has error" * } */
¿ò¼ÜÅäÖþ²Ì¬Ä¿Â¼£¬ÈÃÆä¿É·ÃÎÊ£º
config/http.js
2016ÎåÔÂ18
Node.js ÆóÒµ¼¶¿ª·¢¿ò¼Ü
»ùÓÚSails.js MVC¿ò¼Ü£¬Â·ÓÉ×Ô¶¯Ó³É䣬ÍêÉÆµÄȨÏÞ¿ØÖÆÌåϵ£¬ÓÅÃÀµÄºǫ́½çÃæ¡£
¼¯³É×î»ù´¡µÄͨÓù¦ÄÜ£º
ϵͳ£¨»ú¹¹¹ÜÀí¡¢Óû§¹ÜÀí¡¢½ÇÉ«¹ÜÀí¡¢²Ëµ¥¹ÜÀí¡¢¶¨Ê±ÈÎÎñ¡¢Êý¾Ý¿â±¸·Ý¡¢IP·ÃÎÊ¿ØÖÆ¡¢µÇ¼ÈÕÖ¾µÈ£©
CMS£¨Õ¾µã¹ÜÀí¡¢À¸Ä¿¹ÜÀí¡¢ÄÚÈݹÜÀí¡¢¹ã¸æ¼°Á´½ÓµÈ£©
΢ÐÅ£¨»áÔ±ÁÐ±í¡¢Î¢ÐÅÏûÏ¢¡¢Èº·¢ÏûÏ¢¡¢×Ô¶¯»Ø¸´¡¢¹Ø¼ü´Ê»Ø¸´¡¢ÕʺÅÅäÖᢲ˵¥ÅäÖõȣ©
ÑÝʾµØÖ·£º
ÁªÏµ·½Ê½£ºQQ 1162-4317 £¨±¸×¢nodejs£©
½çÃæ½ØÍ¼£º
2016ÎåÔÂ4
Node.js£º¼¯³ÉQQÐÅÈεǼ1¡¢ÉêÇëAppId¡¢AppKeyºÍÑéÖ¤×Ö·û´®
ÍøÕ¾Ê×ҳͷÎļþÌí¼ÓÑéÖ¤×Ö·û´®£¬È磺
<meta property=”qc:admins” content=”765754250763563070636” />
Ìîд»Øµ÷µØÖ·£º
±ØÐëÊǹ«ÍøµØÖ·£¬¿ÉÒÔÌîд¶à¸ö£¬×¢Òâ ºÍ ÊÇÁ½¸öµØÖ·£¬Á½¸ö¶¼ÐèÒªÅäÖá£
2¡¢¿ª·¢Íê³ÉµÇÂ¼Ò³Ãæ£º
<span id=”qqLoginBtn”></span>
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="<%=qq_appid||''%>" data-redirecturi="<%=req.baseUrl%>/public/shop/pc/account/oauthQq" charset="utf-8" ></script> <script type="text/javascript"> QC.Login({ btnId:"qqLoginBtn", //²åÈë°´Å¥µÄ½Úµãid scope: "get_user_info" },function(oInfo, oOpts){ //µÇ½³É¹¦Ö´ÐÐ var nickname=QC.String.escHTML(oInfo.nickname);//»ñÈ¡QQ»áÔ±Ãû var info={ nickname:nickname, gender:oInfo.gender, headimgurl:oInfo.figureurl_qq_1 //Í·Ïñ40X40 };//·â×°¶ÔÏó if(QC.Login.check()){ QC.Login.getMe(function(openId, accessToken){ info.openid=openId;//´«µÝopenid¼°êdzÆÍ·ÏñµÈ£¬ÒµÎñÂß¼×Ô¶¯×¢²á»áÔ±»òµÇ¼ $.post( "/public/shop/pc/account/oauthQqStatus", info, function(result){ console.log(result); if(result.code==0){ window.location.href=$("#r").val()||'/member';//µÇ¼³É¹¦Ìø×ª }else{ alert('µÇ¼ʧ°Ü'); } },'json' ); }); } });</script>»Øµ÷Ò³Ãæ£º
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" charset="utf-8" data-callback="true"></script>Í˳öµÇ¼£º
<%if(sails.config.system.ShopConfig.oauth_open&&sails.config.system.ShopConfig.pay_wxpay&&sails.config.system.ShopConfig.oauth_qq){ var qq_appid=''; if(sails.config.system.ShopConfig.oauth_qq_info){ qq_appid=sails.config.system.ShopConfig.oauth_qq_info.qq_appid; } %> <script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="<%=qq_appid||''%>" data-redirecturi="http://<%=sails.config.system.AppDomain%>/public/shop/pc/account/oauthQq" charset="utf-8" ></script> <script type="text/javascript"> QC.Login.signOut(); if(QC.Login.check()==false){ window.location.href='/public/shop/pc/account/logout';//ÏÈQQµÇ³ö£¬ÔÙÇå³ýsession }else{ window.location.reload(); } </script> <%}else{%> <script type="text/javascript"> window.location.href='/public/shop/pc/account/logout'; </script> <%}%> 3¡¢ÉêÇëÉóºËÉóºËÌõ¼þ£ºµÇÂ¼Ò³ÃæÓÐQQµÇ¼ͼ±ê¡¢Ê¹ÓÃÉêÇëµÄQQ»ò²âÊÔQQºÅ£¬²âÊÔ¿ÉÒÔÕý³£µÇ¼ºóÌá½»ÉêÇ룬·ñÔò¿Ï¶¨ÊDz»Í¨¹ýµÄ¡£
2016ÈýÔÂ2
Node.js É̳Çϵͳ¿ª·¢½øÕ¹
ÉÌÆ·¹æ¸ñ¡¢»áÔ±¼Û¡¢ÉÌÆ·Ïà²á¡¢Í¼Æ¬Ëõ·Å¡¢¶þάÂëµÈµÈ£¬ÓÃÆäËûÓïÑÔʵÏÖÆðÀ´¿ÉÄܱȽϼòµ¥µÄ¹¦ÄÜ£¬ÓÃnode.js ʵÏÖÆðÀ´£¬±Ï¾¹È«¿¿×Ô¼ºÃþË÷£¬»¨Á˺öàʱ¼ä£¬£¬ºÃÔÚ×öºÃÁË£¬Àá±¼¡£¡£
2015Ê®¶þÔÂ20
Nginx+Tomcat¸ºÔؾùºâ¡¢°ó¶¨¶àÓòÃû¡¢ÉèÖÿª»úÆô¶¯µÄ°²×°²½Öè
¡¡