line开发网址

line开发文档

认证和授权的过程是建立在 OAuth2.0 和 OpenId Connect 基础上

具体的过程见 Integrating Line Login

1、先去开发网址注册你的app应用

Created a channel for your application

得到 Channel ID 和 Channel secret

2、配置你的应用

在Redirect settings中的callback URL中填写登录成功后要跳转的页面

3、

你可以请求 用line登陆你app的用户 授予你app获取他们email地址的权利

因此首先你要在line的控制台设置“提交,还要上传你使用的缘由

4、完成一个验证请求

去验证用户的身份,验证你app的请求权限,

要将用户带着参数重定向到一下授权URL,

你可以重定向用户通过一个 line登陆按钮 或者用一个重定向链接

https://access.line.me/oauth2/v2.1/authorize

URL中需要包括一下参数:

参数 类型 是否必须 描述
response_type String 必须 code,告诉line去但会一个授权码
client_id String 必须 Channel ID
redirect_url String 必须 回调URL,登录成功后的跳转URL,可以再line控制台设置
state String 必须 你的代码随机生成的字符串,避免跨站请求伪造
scope String 必须 用户授予权限,你可以使用URL编码空格字符(%20)来指定多个范围,参考范围
nonce String 选择 一个用于防止重复攻击的字符串,这个值通过ID token返回。
prompt String 选择 确认。用于强制显示同意授权页面,即使用户已经授予全部权限
bot_prompt String 选择 在登录过程中,显示一个选项去添加一个bot(bot像广告app的那种感觉,在最下方出现一条广告下载)

5、范围

下列范围可以用在scope参数中

profile:允许得到用户的概要信息

openid:用于检索一个ID token

email:允许得到用户的email地址,openid也必须同时指定。

在建立user和bot的时候,access token和profile范围是必须的。

验证请求的例子:

https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=1234567890&redirect_uri=https%3A%2F%2Fexample.com%2Fauth&state=12345abcde&scope=openid%20profile&nonce=09876xyz

https://access.line.me/oauth2/v2.1/authorize

?response_type=code

&client_id=1234567890

&redirect_uri=https%3A%2F%2Fexample.com%2Fauth

&state=12345abcde

&scope=openid%20profile

&nonce=09876xyz

6、验证和授权的过程

在你app点击用line登录--跳转到line的页面--等用户同意授权

接受授权码

一旦用户授权了完成,HTTP status code 302,在回调函数中给你下面的参数:

参数 类型 描述
code String 授权码得到一个access token,验证时间为10分钟,号码只能用一次
state String state参数包括原始验证请求时的URL。你的应用应该验证这个值是否和原始的请求匹配
friendship_status_changed Boolean

true=user和bot之间的关系在登录中改变。false则相反。

这个值只有在bot_prompt请求的时候才会返回。

例如

HTTTP/1.1 302 Found
Location : https://client.example.org/cb?code=abcd1234&state=0987poi&friendship_status_changed=true

HTTTP/1.1 302 Found

Location : https://client.example.org/cb?

code=abcd1234

&state=0987poi

&friendship_status_changed=true

ERROR响应

参数 类型 是否必须 描述
error String 必须 Error code
error_description String 选择 人类可读的ASCII编码的文本描述的错误。
state String 选择 OAuth 2.0状态值。如果需要授权请求包括状态参数。

例子

https://example.com/callback?error=access_denied&error_description=The+resource+owner+denied+the+request.&state=0987poi

https://example.com/callback?error=access_denied

&error_description=The+resource+owner+denied+the+request.

&state=0987poi

得到一个access token

请求

POST https://api.line.me/oauth2/v2.1/token

Request header 请求头 描述
Content-Type application/x-www-form-urlencoded

Request Body 请求体

参数 类型 是否必须 描述
grant_type String authorization_code,指定授权类型
code String Authorization code
redirect_uri String Callback URL
client_id String Channel ID 
client_secret String Channel secret

curl -X POST https://api.line.me/oauth2/v2.1/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=authorization_code' \
-d 'code=xxx' \
-d 'redirect_uri=xxx' \
-d 'client_id=xxx' \
-d 'client_secret=xxx'

Response响应

Property 类型 描述
access_token String Access token 有效期30天
expires_in Number 以秒为单位的时间,直到访问令牌到期。
id_token String JSON Web标记(JWT)包含关于用户的信息。这个字段中指定返回只有openid范围。有关更多信息,请参见ID标记。
refresh_token String 令牌用于获取一个新的访问令牌。有效直到访问令牌到期后10天。
scpoe String 用户权限授予。然而,电子邮件的范围不是作为值返回属性即使被授予许可范围。
token_type String 持票人

例子

{"access_token": "bNl4YEFPI/hjFWhTqexp4MuEw5YPs...","expires_in": 2592000,"id_token": "eyJhbGciOiJIUzI1NiJ9...","refresh_token": "Aa1FdeggRhTnPNNpxr8p","scope": "profile","token_type": "Bearer"
}

ID tokens

Headers

{"alg": "HS256"
}

Payload用户信息可以再payload 中找到

{"iss": "https://access.line.me", "sub": "U1234567890abcdef1234567890abcdef ","aud": "1234567890", "exp": 1504169092, "iat": 1504263657, "nonce": "0987654asdf", "name": "Taro Line", "picture": "https://sample_line.me/aBcdefg123456",
}

Line 第三方登录 后台相关推荐

  1. php 微信第三方登录demo,第三方登录 - 快速接入微信、QQ、微博等第三方登录方式 – 基于ThinkPHP和Bootstrap的极速后台开发框架...

    此插件基于FastAdmin和Thinkphp5开发的第三方登录插件,可用于对接微.微博.QQ等第三方登录,目前CMS中的小程序账号登录绑定就是基于此插件开发,在使用CMS中的小程序登录功能之前请务必 ...

  2. 友盟社会化Android组件之第三方登录

    前段时间公司需要,逐步了新浪微博.腾讯qq.微信等授权登录验证的问题.如果要一个个申请,看文档写代码也是很多流程的.干脆用友盟社会化Android组件之第三方登录.友盟是集成了这些平台,还有其他主流的 ...

  3. iOS开发-Umeng第三方登录-个人整理

    官方网址: http://dev.umeng.com/social/ios/operation#2 一.注册友盟账号 登陆友盟官网,在我的产品页面添加新应用,然后获取到Appkey. http://w ...

  4. ShareSDK实现第三方登录和分享

    使用ShareSDK实现第三方登录和分享 1.创建项目 2.在shareSDK网站上下载相关的SDK并解压 3.找开ShareSDK for Android文件夹,双击QuickIntegrater. ...

  5. Android使用ShareSDK集成第三方登录和分享(v3.1.2)

    一.产品概述 ShareSDK是一种社会化分享组件,为iOS.Android.WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台. 二.集成方 ...

  6. PC端微信QQ第三方登录

    微信第三方登录实现原理准备工作 参考微信开放平台:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wec ...

  7. iOS - Share 分享/第三方登录

    1.系统方式创建分享 按照下图在 Info.plist 文件中将 Localization native development region 的值改为 China.如果不设置此项弹出的分享页面中显示 ...

  8. sdk没有登录什么意思_不需要接入SDK的第三方登录及分享

    讲到第三方登录分享,第一反应大概就是友盟.ShareSDK之类.集成微信.QQ.微博三个平台的话,友盟的SDK有62.9M,ShareSDK的包有74M.如果直接集成最原始的三个平台的SDK,大小总共 ...

  9. 拾人牙慧篇之———QQ微信的第三方登录实现

    一.写在前面 关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了.我只能保证我的这个是我实现 ...

  10. (0013)iOS 开发之集成友盟第三方登录

    第三方登录的原理和流程 用户采用第三方登录的时候,用户会发送哪些信息到我的后台,后台会进行哪些比对操作?首次使用第三方登录和再次使用第三方登录时验证有哪些不同,后台如何保存用户的登录信息尼? 对于用户 ...

最新文章

  1. 机器学习中的数据集划分问题
  2. MSU发布2020年度4K编码效率评测结果
  3. Python中矩阵库Numpy基本操作
  4. 去哪儿网2017春招在线笔试
  5. CCF202009-1 称检测点查询
  6. 这几个公众号带你看看BAT的工作情况
  7. 多项logistic回归系数解释_因变量无序多分类资料的logistic回归
  8. 放假为什么要借周末呢?
  9. 从头开始复习css之选择器(中)
  10. 【通信总线】CAN 总线简介及应用
  11. oracle解锁sysman用户,详解Oracle如何解锁用户的方法
  12. 三步解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
  13. ionic android n权限,ionic权限问题
  14. Xmind思维导图 常用快捷键使用
  15. 博客做外链(可以发布外链的博客有哪些平台)
  16. 生成一个16位的随机数字
  17. 关于PHP程序员技术职业生涯规划 2017年3月5日韩 天峰
  18. Vue实例化对象挂载到元素上的方法
  19. 计算机文字录入标准,计算机文字录入员考试大纲标准.doc
  20. CPU卡读写操作函数

热门文章

  1. hp服务器修改bios设置,HP 服务器进入BIOS 按键总结
  2. 重学编程-编程入门指南 v1.4
  3. DRAM Failures(漏电流与寄生电容)
  4. cnzz.php,CNZZ站长统计代码报错解决方法
  5. C2 - Skyscrapers (hard version),Codeforces Round #622 (Div. 2),单调栈
  6. poj 1900 Game
  7. HDU 2154:跳舞毯(递推)
  8. 信安冬令营实训报告(信息收集,主机渗透,内网渗透)
  9. 零基础21天搞定Python分布式爬虫_分布式网络爬虫入门进阶视频教程
  10. 【python】if __name__==‘__mian__‘ 如何理解,原理及作用