贵州无状态贵州电视文化传媒媒有限公司,我想知道这个公司的基本情况,还有它的

关于 Token,你应该知道的十件事 - 为程序员服务
关于 Token,你应该知道的十件事
60926 阅读
原文是一篇很好的讲述 Token 在 Web 应用中使用的,而这是我和
合作翻译的译文。
1. Token 应该被保存起来(放到 local / session stograge 或者 cookies)
在单页应用程序中,有些用户刷新浏览器后会带来一些跟 token 相关的问题。而解决方法很简单:你应该把 token 保存到起来:。而浏览器不支持 session storage 时都应该转存到 cookies 里。
如果你想“我把 token 保存到 cookie ,不就跟以前没有任何分别?”。可是在这种情况下你只是把 cookie 当作一个储存机制,而不是一种。(比如说,这个 cookie 不会被 Web 框架用于用户验证,所以没有 XSRF 攻击的危险)。
2. Tokens 除了像 cookie 一样有有效期,而且你可以有更多的操作方法
Tokens 应该有一个有效期(在
中是作为 exp 属性),否则其他人只要登录过一次就可以永远地通过 API 的验证。Cookies 基于同样的理由也有一个有效期。
在 Cookies 的使用中,有不同的选项可以控制 cookie 的生命周期:
. cookies 可以在浏览器关闭后删除(session cookies);
. 另外你可以实现服务器端的检查(通常由你使用的 Web 框架完成),还有也可以实现绝对有效期或弹性有效期(sliding window expiration);
. Cookies 可以带有有效期地保存起来(浏览器关闭后也不删除)。
而在 tokens 的使用中,一旦 token 过期,只需要重新获取一个。你可以使用一个接口去刷新 token:
. 让旧的 token 失效;
. 检查这个用户是不是还存在,权限是否被取消或者任何对你的程序来说是有必要的;
. 得到一个更新了有效期的 token。
你甚至可以把 token 原来的发布时间也保存起来,并且强制在两星期后重新登录什么的。
app.post('/refresh_token', function (req, res) {
// verify the existing token
var profile = jwt.verify(req.body.token, secret);
// if more than 14 days old, force login
if (profile.original_iat - new Date() & 14) { // iat == issued at
return res.send(401); // re-logging
// check if the user still exists or if authorization hasn't been revoked
if (!valid) return res.send(401); // re-logging
// issue a new token
var refreshed_token = jwt.sign(profile, secret, { expiresInMinutes: 60*5 });
res.json({ token: refreshed_token });
如果你需要撤回 tokens(当 token 的生存期比较长的时候这很有必要)那么你需要一个 token 的生成管理器去作检查。
3. Local / session storage 不会跨域工作,请使用一个标记 cookie
如果你设置一个 cookie 的域名为 .yourdomain.com 它将可以被 youdomain.com 和 app.yourdomain.com 获取,这样用户登录并且转到 app.yourdomain.com 后也能很容易地从主域名找回这个 cookie(假如你的是电商网站)。
而另一方面,保存在 local / session storage 的 tokens,就不能从不同的域名中读取(甚至是子域名也不行)。那你能怎么做?
一个可能的选择是,当用户通过 app.yourdomain.com 上面的验证时你生成一个 token 并且作为一个 cookie 保存到 .yourdomain.com
$.post('/authenticate, function() {
// store token on local/session storage or cookie
// create a cookie signaling that user is logged in
$.cookie('loggedin', profile.name, '.yourdomain.com');
然后,在 youromdain.com 中你可以检查这个 cookie 是不是已经存在了,并且如果存在的话就转到 app.youromdain.com去。从这以后,这个 token 将会对程序的子域名以及之后通常的流程都有效(直到这个 token 超过有效期)。
不过这将会导致 cookie 存在但 token 被删除了或其他意外情况的发生。在这种情况下,用户将不得不重新登录。但重要的是,像我们之前说的,我们不会这个用 cookie 作为验证方法,只是作为一个存储机制去支持存储信息在不同的域名中。
4. 每个 CORS(跨域资源共享)请求都会带上预请求(Preflight request)
有些人指出 Authorization header 不是一个,因此对于一个特定的 URLs 的所有请求都会带上一个预请求。
OPTIONS https://api.foo.com/bar
GET https://api.foo.com/bar
Authorization: Bearer ....
OPTIONS https://api.foo.com/bar2
GET https://api.foo.com/bar2
Authorization: Bearer ....
GET https://api.foo.com/bar
Authorization: Bearer ....
但这只会发生在你发送 Content-Type: application/json 时。不过这说明已经出现在绝大多数的程序中了。
一个小小的警告,the OPTIONS 请求不会带有 Authorization header 自身,所以你的网络框架应该支持区别对待 OPTISON 和后来的请求。(微软的 IIS 因为某些原因好像会有问题)。
5. 当你需要流传送某些东西,请用 token 去获取一个已签名的请求。
当使用 cookies 时,你可以很容易开始一个文件的下载或流传送内容。然而,在 tokens 的使用中,请求是通过 XHR 完成的,你不能依赖于它。而解决方法应该是像 AWS 那样通过生成一个签名了的请求,例如,Hawk Bewits 是一个很好的框架去启用它:
POST /download-file/123
Authorization: Bearer...
ticket=lahdoiasdhoiwdowijaksjdoaisdjoasidja
这个 ticket 是无状态并且是基于 URL 的:host + path + query + headers + timestamp + HMAC,并且有一个有效期。所以它可以用于像只能在5分钟内去下载一个文件。
你然后可以转到 /download-file/123? ticket=lahdoiasdhoiwdowijaksjdoaisdjoasidja 中去。服务器就会检查这个 ticket 是不是有效然后像正常一样开始下一步的服务。
要更容易防范
XSS 攻击的原理是,攻击者插入一段可执行的 JavaScripts 脚本,该脚本会读出用户浏览器的 cookies 并将它传输给攻击者,攻击者得到用户的 Cookies 后,即可冒充用户。但是要防范 XSS 也很简单,在写入 cookies 时,将 HttpOnly 设置为 true,客户端 JavaScripts 就无法读取该 cookies 的值,就可以有效防范 XSS 攻击。因为 Tokens 也是储存在本地的 session storage 或者是客户端的 cookies 中,也是会受到 XSS 攻击。所以在使用 tokens 的时候,必须要考虑过期机制,不然攻击者就可以永久持有受害用户帐号。
相比 XSS,XSRF 的危害性更大,因为大多数 Web 框架都已经内置了 XSS 防范机制(例如在 Ruby on Rails 中,用户的输入在输出的时候都会做转义操作,攻击者插入的脚本就无法执行),对于大部分开发者而言,甚至连 XSRF 都不知道是什么玩意,更别提防范了。XSRF 目前并不是每个 Web 框架都有防范机制,因此开发者更应该留意 XSRF 。
7. 注意 token 的大小
Token 机制在每次请求 API 的时候,都需要带上一个 Authorization 的 Http Header 。
Authorization: Bearer ...2kb token...
connect.sid: ...20 bytes cookie...
Token 的大小其实由你储存在 token 中的信息量所决定,例如可能有 nickname,openid 等开发者另外加上的信息。
但是 session cookies 机制只需要一个字串作为用户标识即可(例如 PHP 的 PHPSESSIONID),其中关于用户的信息都会直接储存到服务端的数据库中,当用户请求时才从数据库中捞出来用。
当然 Token 机制也可以仿照 session cookies 机制这么做了,也是个有效控制 token 大小的方法。
Token 中只保留关键的几条身份标识信息,其余都放到数据库里面了,权限控制的时候再捞出。这样做的好处是,开发者可以完全掌控 token,因为关键信息都已经是你代码和数据库中的一部分了,想怎么弄都可以了。
举个例子:
Authorization: Bearer ……500 bytes token….
Then on the server:
app.use('/api',
// 首先检查 token;
expressJwt({secret: secret}),
// 然后再从数据库中捞出用户信息。
function(req, res, next) {
req.user.extra_data = get_from_db();
另外值得一提的是,你也可以把东西都丢 Cookies 里面(而不是只丢个身份标识字串)。只要确保资料经过了严格的加密,攻击者无法利用,现在有些 Web 框架已经有类似机制,例如 Nodejs 的这个插件 。
8. 有需要的话,要加密并且签名 token
虽然 TLS/SSL 机制可以隔绝大多数中间人攻击,但是如果 token 中带有了用户的敏感信息,开发者也应该要加密这些信息。
使用 JWT(文中第 9 点) 可以加密 token,但是由于目前大多数 Web 框架还未支持 JWT,所以可以使用 AES-CBC 算法加密 token。
app.post('/authenticate', function (req, res) {
// 校验用户;
// 加密 token;
var encrypted = { token: encryptAesSha256('shhhh', JSON.stringify(profile)) };
// 给加密后的 token 签名;
var token = jwt.sign(encrypted, secret, { expiresInMinutes: 60*5 });
res.json({ token: token });
function encryptAesSha256 (password, textToEncrypt) {
var cipher = crypto.createCipher('aes-256-cbc', password);
var crypted = cipher.update(textToEncrypt, 'utf8', 'hex');
crypted += cipher.final('hex');
// 上面就是 encrypt-then-MAC (加密后签名)做法。
当然你也可以用文中的第 7 点,直接将敏感信息丢数据库中。
9. 将 JSON Web Tokens 应用到 OAuth 2
OAuth 2 是一个解决身份验证的授权协议,并且广泛地使用了 token 。
用户通过 OAuth 2 协议授权第三方应用权限,然后服务器返回一个 access_token 给第三方应用,通常也带有 scope 参数,第三方应用通过带上 access_token 请求服务器,可以在授权范围(scope)内调用 API。
一般来说,类似这种 token 是不透明的,就是核心数据都储存以 hash-table 结果储存在服务器中,客户端只持有一个令牌(access_token),任何人都可以用这个令牌在授权范围(scope)内调用服务器端的 API。
Signed tokens(例如 ))和这种形式的 token 最主要的区别是,JWT 是无状态的,它不储存在服务端 hash-table 中,服务端中不保留 JWT 请求的相关信息,JWT 会把授权信息和 API 调用返回都丢一起返回给客户端。
JWT 通常以 Base64 + AES 方式编码传输。OAuth 2 协议也支持 JWT,因为 OAuth 2 并未限制 access_token 数据格式,你可以将 JWT 应用在 OAuth 2 上。
10. Tokens 不是万能的解决方法,得根据你的需求自行采用
这些年来,我们帮助过不少大公司实现了他们的以 Token 为基础的验证授权架构。曾经有一家 10k + 员工,有着大量数据的公司,他们想实现一个中央权限管理系统,其中有一个需要是某个员工只能读取某个国家某个医院某个床位的id和name字段数据,想想这样的细粒度的权限管理是多么难实现,无论是技术上还是行政上。
当然采用 tokens 与否,得看大家的具体需求,但是,要忠告大家的是,不要什么内容都写到 tokens 了,加之前想想有没有这个必要。
原文地址:, 感谢原作者分享。
您可能感兴趣的代码不沾锅太上皇 心机无限 详细分析无状态如何保住首发【背锅吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,775,059贴子:
不沾锅太上皇 心机无限 详细分析无状态如何保住首发
s3 靠灵药赢了skt一局 态上皇表现完全不如faker 打皇族 态上皇还被55开压制了 当时几乎没人再吹无状态的中单这是态上皇的第一次危机 大赛混子 没carry不用刺客的话团战就是胡乱放技能
成都香锅加盟,[膳品轩鹅掌]打造特色餐饮,香锅+汤锅完美结合,一次性加盟,终身免加盟费.
coll除了59e口中的宇宙第一狐狸还有什么拿手英雄吗我就问问别刚我
s3结束以后 在lpl的决赛中 omg输给了pe 之后的两次租借 omg借pe下路打wcg 和 yg借无状态打g联赛 让混子无处藏身 omg不是下路坑 无状态去别的队帮忙也carry不了
自此 omg管理层有意换掉态上皇 态上皇面临职业生涯最大危机 态上皇先是(被)受伤 由冰封翔替补出场
态上皇一想 这样可不行 要甩锅啊 至少得拿回主力位置 于是找到好基友 s3表现出色的灵药 让他帮忙 于是乎灵药辅助 柚子打野这么运营一波以后 态上皇自以为高枕无忧 不用几场就能回到首发位置
可是万万没想到 虽然柚子不行 但那个上单和新来的冰封翔异常carry 打穿了整个春季赛 以中国第一身份出征s4全明星 态上皇郁郁寡欢 随队去了法国
无状态虽然菜,但是他不送啊。不像辣个ADC,最后首发场带辅助一起送了10个头,我要是打RANK,20分钟看见下路送了10个头,我也不想打了。简单的说,OMG现在就是菜鸡互啄,不是比谁更强,比谁更菜而已。
当时的形势可是非常差 冰封翔发挥出色 omg联赛第一 都是在态上皇替补的情况下获得的
59e心中可能早已将cool这个id淡忘
此时 草莓遭遇不幸 只能赶回中国 态上皇替补参加娱乐赛 态上皇可是乐坏了 终于有机会重新站在聚光灯下了 暗暗发誓 一定要拿回主力位置
无状态知道 队里最菜的位置是柚子的打野 柚子玩的最菜的是瞎子 所以在娱乐赛拿出瞎子秀了一把 让59e记起还有他这么个人之后和他预料的一样 冰封翔+柚子的组合被skt疯狂压制
3:0之后 omg全队面临巨大压力(除了打娱乐赛的态上皇)
无状态看到机会 就复出了 为了自己的复出之路更顺畅 加强中野联动 他要求和实力强劲的打野灵药组成中野 之后的是大家都知道 冰封翔长时间被冷藏 柚子退役但是新的危机有显现了 omg在lpl打不过司马布的新兴战队edg了 春季赛还是第一呢!态上皇转念一想 必须找人背锅 免得再次替补 看到上路那个男人的出色状态 看到基友灵药眼中的款款深情 他转过头对着小伞嘿嘿一笑:伞啊 换个辅助吧
吊大无脑的小伞哪里知道心机态已经开始算计自己了
满心欢喜地让经验丰富的西卡替补 换了自己心仪的dada777 无状态微微一笑 这次你的锅跑不了了
歇歇 下午再来
因为他有个姐姐
有理有锯。
好算计,天天为什么就中单没有替补很能说明问题
之后就是s4预选赛 omg状态比较低迷 再找了另一个辅助 古风美蓝--落瞎 武装态一看到这个辅助 就感觉自己omg第一型男的地位岌岌可危于是建议雪藏古风男 上dada777迷惑敌人
之后的s4预选赛上 态上皇的内心发生了巨大变化 如果说以前的态上皇是想carry的混子型中单的话 s4预选赛之后的态上皇完全沦为打卡型中单了
s4预选赛上 对阵lgd的生死之战 态上皇第一把拿出男刀打狐狸的counter pick 但是输了 第二把太上皇抢了发条 结果被伞皇的大嘴carry了 这时候的太上皇特别迷茫 依稀记起全明星赛和夏季赛发挥不错的隐身伞
他领悟了卸锅的奥秘--打卡 然后迷茫中拿出了招牌狐狸 混完了第三把 成功进入s4
本来态上皇决心打卡混s4的 但造化弄人 拳头公司给他评了个世界第二中单 膨胀的不行的他在s4小组赛耍起了杂技
两把托儿索狠狠地打了拳头公司的脸小组赛半程一过 omg战绩惨淡 在这生死危机的时刻 态上皇狠狠抽了自己两巴掌 心理默念我要好好打卡
让狗狗赢上转中
无状态也是被受伤的了
态上皇替补,想多了吧,分分钟拉出去午门斩首
怎么没了?
他有这么聪明也不会成现在这样了
躺在床上的他辗转反侧 态上皇的内心是崩溃的 不能队伍要我打卡我就打卡 我要试一试效果先啊 可是时间不允许 再输就要被淘汰了在激烈的内心斗争中 cool睡去了梦中他见到了一个伟岸的背影
“少年 说出你的烦恼”“我玩游戏对线被单杀 团战没爆炸输出”“你要加强对线抗压能力 提高支援意识 打团不要先手不要突进 别死就好甚至可以出五速鞋啊 被打回家了上线快 下路打起来了支援快”“我有点懂了 学学大师”“别叫我大师 叫我弥赛亚”“哦 原来您就是”态上皇想起那个鼻子的ipl5 那个鼻子迷一样的支援 深以为然 决心隐身打卡
贴吧热议榜
使用签名档&&
保存至快速回贴您所在的位置:
& 业界首屏 & 正文
贵的离谱-奥迪R8售价178.5万中国上市
日07:33  
汽车探索 刘建东 
&&& 日,上海F1赛车场,中国宣布旗下首款纯正跑车( )正式在国内上市。
  4.2L quattro车型售价178.5万元!
奥迪R8实拍
  R8被奥迪赋予了百年积攒的赛车经验和领先世界的高精尖技术,是让德国人在超级跑车领域能够昂首挺胸的又一杰作。说R8源于赛车一点也不假,它以5届勒芒24小时赛冠军奥迪R8赛车为原型,2003年推出的Le Mans quattro Concept(勒芒quattro概念车)成就了如今让人百看不厌的经典外形。而且R8这也是奥迪旗下的首款中置发动机车型。
奥迪R8实拍
  R8整车宽度为1900mm,长度和高度分别为4430mm和1250mm。2650mm的长轴距为双座驾驶舱提供了足够充裕的空间。R8车身紧贴路面,车身尾部的肌肉感十足,车门与侧边导流风口的过渡部分的设计也很协调。在车门后方的轮拱和车顶之间,配有宽大的空气进气口,为V8发动机的进气及冷却提供足够的风量。尾部安装的自动伸展式后扰流板可帮助R8更充分地利用风力。
上海车展实拍奥迪R8外观
上海车展实拍奥迪R8前大灯 
 奥迪R8有着出色的外形,而且是奥迪车系中首次采用中置发动机的跑车。另外奥迪R8的quattro系统在正常情况下前后扭矩分配为20:80,根据路况不同,前轮的动力可以在10%到35%之间自动调节,而后轮的动力可以在65%到90%间调节。同时搭载420马力4.2L FSI发动机使其0-100Km/h仅需4.6秒。
  R8的到来的确让国内所有热爱汽车的人为之一振,让人感到惊讶的是,它的到来比A5/S5 Coupe轿跑车还要早,但贵得离谱的售价也让普通人望而却步,这让我们在兴奋之余感到一分遗憾!
  售价与国外相比贵了很多
  借助汽车探索强大的车型数据库,我们对R8的售价做了一下横向对比:与美国、德国、日本三个市场相比较,R8确实贵了很多。
  相同款式的奥迪R8 R-tronic自动型售价如下表所示,可见在车价最便宜的美国,折合86万元的售价只有国内的一半;而在原产地德国的售价119万元和日本市场的113万元,也都要比国内售价便宜60万以上,可见R8的售价真的贵得离谱!
2003年推出的Le Mans概念车造就了奥迪R8的完美车身
  奥迪自抬身价,与F430、盖拉多不是同一级别
  奥迪宣称R8的竞争对手是法拉利( ),兰博基尼盖拉多、( )Turbo等车型,我们先不说性能方面如何,就从品牌价值来说,&奥迪和这几个品牌就不是同一级别,法拉利、兰博基尼等这些都是有悠久历史的超级跑车制造商,而奥迪仅仅是一个二流的高档品牌(这是个事实,无需争辩,在全世界范围内,奥迪与宝马的销量差的不是一点半点)。所以说奥迪此举就是自抬身价,想与法拉利、兰博基尼的品牌价值相比,还需要很长时间。
奥迪R8与法拉利F430不是同档次车型
  而从性能上比,奥迪R8与这几个车型也有着不小的差距。从超级跑车最主要的数据,最大功率,最大扭矩,0-100km/h加速以及最高速度来说,奥迪R8都是最差的。
  真不知道奥迪拿什么与这几个竞争对手相比,虽然奥迪R8和这几个对手相比是最便宜的。不过消费者恐怕听到这几个品牌的名字就不会考虑奥迪了。
  R8真正的对手是911卡雷拉GT3,但却贵了10万
  其实从本身的性能来说,跟R8在同一水平的应该是保时捷911卡雷拉GT3。
保时捷911卡雷拉GT3是奥迪R8的主要竞争对手
  GT3的最大功率415马力,最大扭矩405牛米,0-100km/h加速4.3秒,最高速度4.3秒,这些与R8相比都是差不多的。但是GT3的售价只有165万,比R8便宜了10万,其实对于有钱人来说这不算什么,最关键的是GT3是一辆保时捷。
  追求性能的朋友可以等待GT-R
  如果您买这个级别的跑车是为了追求性能的话,那您就更没有理由选择R8了,最新一代的日产( )绝对是您的最佳选择。GT-R最大功率达到了480马力,最大扭矩588牛米,这个数据远远超过了R8,而且GT-R创造了纽堡环路北环的第二好圈速。
  最关键的是,GR-R在日本售价折合人民币仅仅50.5万元。而且据日产官方公布,不久以后将在美国上市左舵车型,那么他来到中国也就不远了。
与GT-R相比R8的性能逊色不少
  根据日产( )的售价,GT-R如果来到中国,售价绝对不会超过100万,真是物美价廉啊!
  编后语
  奥迪R8是奥迪的第一款高性能跑车,从其自身来讲是有很多亮点的。但是如果和竞争对手相比,R8还是要逊色很多的。而奥迪的心里大家也很明白,这类车型的销量其实并不大,针对很多国内消费者仍然存在的“越贵的东西越好”的心里,奥迪对此深有体会,因此对R8采取较高的定价只是奥迪官方自抬身价的一种营销策略罢了!
[责任编辑:johnzhuang]
( 16:31:57)
( 09:55:00)
( 11:43:25)
( 10:50:03)
( 10:40:10)
( 10:29:38)
           
同时更新资讯所属地
暂无更新,休息一会儿
白羊座(03.21-04.19)
金牛座(04.20-05.20)
双子座(05.21-06.21)
巨蟹座(06.22-07.22)
狮子座(07.23-08.22)
处女座(08.23-09.22)
天秤座(09.23-10.23)
天蝎座(10.24-11.22)
射手座(11.23-12.21)
摩羯座(12.22-01.19)
水瓶座(01.20-02.18)
双鱼座(02.19-03.20)
今日运势:
本日可多参与公众事务,将自己的意见与兴趣结合,提供同好们做参考,让欢乐的气氛添加一些趣味性...
Copyright & 1998 - 2018 Tencent. All Rights Reserved查投递进度,找主管勾搭
名企校园职位,装进手机!
社会招聘微信
校园招聘微信
400-050-8080
[北京市/海淀]
应届生/大专
计算机软件
[江苏/无锡/]
101-300人
[江苏/无锡/]
[江苏/无锡/]
[江苏/无锡/]
101-300人
[江苏/无锡/]
应届生/大专
奢侈品/收藏品
[江苏/无锡/]
应届生/大专
奢侈品/收藏品
[江苏/无锡/]
应届生/大专
奢侈品/收藏品
[江苏/无锡/]
[海外/海外/]
移动互联网
301-500人
[海外/海外/]
移动互联网
301-500人
[江苏/无锡/]
移动互联网
301-500人
[江苏/无锡/]
移动互联网
301-500人
[江苏/无锡/]
移动互联网
301-500人
[江苏/无锡/]
应届生/大专
计算机服务
[江苏/无锡/]
应届生/大专
计算机服务
[江苏/无锡/]
应届生/大专
计算机服务
[北京市/海淀]
应届生/大专
计算机软件
[北京市/海淀]
应届生/大专
计算机软件
[江苏/无锡/]
文化/艺术/出版
101-300人
关注英才微信轻松跟踪投递进展
扫二维码,主管排队等你勾搭
ICP经营许可证编号 京ICP证060405号 京ICP备号-12 京公网安备37号 Copyright (C) 北京五八信息技术有限公司 版权所有贵州无状态文化传媒有限公司
贵州贵阳云岩区
公司地址:贵州 贵阳 云岩区 瑞金中路51号瑞金商务大厦7层
无状态文化传媒有限公司成立于2014年,隶属于聚福轩茶业有限公司。目前服务客户触及饮食、旅游、商业活动等范畴。
无状态文化传媒有限公司衷于对“文化”、“创意”、“品牌”的理念,针对每一个推广中的流程,拥有雄厚的广告设计能力、优良的广告服务、运营管理体系、资深的广告设计专业人。独特创新的广告创意制作,以创意先行,着力提供涉及企业品牌形象、平面广告设计、线上建设等方面的策划与配套服务。旨在于协助客户提高销售额,并以建立长期品牌价值为使命,让各行业的品牌形象结合销售推向市场,赢得足够的社会关注。
同行业相似职位
[无锡 滨湖]
[无锡 江阴]
经验应届生
[无锡 江阴]
[无锡 江阴]
经验应届生
[无锡 江阴]
[无锡 江阴]
经验应届生
扫二维码,主管排队等你勾搭
ICP经营许可证编号 京ICP证060405号 京ICP备号-12 京公网安备37号 Copyright (C) 北京五八信息技术有限公司 版权所有

我要回帖

更多关于 贵州荷塘月色文化传媒 的文章

 

随机推荐