对于没有服务端的第三方应用,使用账号密码授权也是一种方式(不过需要基于用户对这个应用足够信任的前提)
1,申请Client ID(填写应用ID号和密码,这里不需要填写回调网址)
访问
http://localhost/oauth/server/examples/mongo/addclient.php
填写ID=50001,Secret=pwd提交,查询数据库如下
> db.clients.find()
{ "_id" : "50001", "pw" : "pwd", "redirect_uri" : "" }
2,直接使用用户账号,密码获取access token
发起请求如下
http://localhost/oauth/server/examples/mongo/token.php?
client_id=50001&
client_secret=pwd&
grant_type=password&
username=ciaos&
password=ciaospwd
返回
{
"access_token":"1efd8b9a68de73934d9dd9218fff899f",
"expires_in":3600,
"scope":null
}
查询数据库如下
> db.tokens.find()
{ "_id" : "1efd8b9a68de73934d9dd9218fff899f", "client_id" : "50001", "expires" : 1352693889, "scope" : null }
当然服务器端需要支持这种授权机制,我们需要在MongoOAuth中重载OAuth2这个类的相关函数如下:
/**
* Overrides OAuth2::getSupportedGrantTypes().
*/
protected function getSupportedGrantTypes() {
return array(
OAUTH2_GRANT_TYPE_AUTH_CODE,
OAUTH2_GRANT_TYPE_USER_CREDENTIALS
);
}
以及判断用户账号密码的逻辑
/**
* Implements OAuth2::checkClientCredentials().
*
*/
protected function checkUserCredentials($client_id, $username, $password) {
//check whether account information is correct
if(!($username == "ciaos" && $password == "ciaospwd")){
return false;
}
//check whether it's a valid client
$client = $this->db->clients->findOne(array("_id" => $client_id));
return $client !== NULL;
}
这样我们就可以用第二步获取到的access token直接访问受限资源了,访问方法和网站授权一样,不再介绍。
分享到:
相关推荐
springboot整合Oauth2,GateWay实现网关登录授权验证
理解OAuth 2.0 小程序官方文档 微信小程序之登录态维护(十一) 微信的登陆认证方式跟Oauth的授权码认证模式非常相似,接下来我大致讲解Oauth的三种常用模式以及与微信登陆认证的关联。 Oauth的三种常用模式 密码模式 ...
前言: 本篇文章只介绍在Ant Design Pro登录功能中集成图形验证码组件的方法步骤,服务端方法请参考《基于OAuth2.0授权系统的验证码功能》 正文: 在Ant Design Pro模板中,使用账号密码登录功能部分(如下图)...
采用了新浪官方主推的OAuth2.0进行授权和认证 所有接口都升级到了官方V2版的API,也就是说可以用官方V2版的API机型操作了 参考了官方PHP版的SDK,将授权认证的方法和API操作的方法独立成了两个类,逻辑上更清晰了 ...
服务介绍项目名称编号名称说明可乐云认证认证服务认证服务基于SpringSecurity进行安全认证,采用OAuth2.0认证体系,对客户端,用户进行认证及授权,支持账号密码登录,短信验证码登录可乐云配置配置配置服务基于
账号:admin,密码:admin。 使用技术 描述 框架 核心框架 Spring、Spring Boot、Spring MVC 持久层 MyBatis、MyBatis-Plus、Druid 权限框架 Jwt、 前端框架 Layui、 基于SpringSecurity、oAuth2.0的版本 基于...
账号:admin,密码:admin。 使用技术 描述 框架 核心框架 Spring、Spring Boot、Spring MVC 持久层 MyBatis、MyBatis-Plus、Druid 权限框架 Jwt、 前端框架 Layui、 基于SpringSecurity、oAuth2.0的版本 基于...
账号:admin,密码:admin。 使用技术 描述 框架 核心框架 Spring、Spring Boot、Spring MVC 持久层 MyBatis、MyBatis-Plus、Druid 权限框架 Jwt、 前端框架 Layui、 基于SpringSecurity、oAuth2.0的版本 基于...
因为这个程序在接近尾声的时候新浪停止了原来的oauth1.0授权,这就意味着我的程序不能授权不能登录,而且oauth1.0授权方式登录后请求数据接口的方法和oauth2.0的不同,这就意味着我还得修改登录后请求数据的方式,这...
srb4j, Simple RESTFul backend for Java, 一个JAX-RS服务端代码脚手架(就像AppFuse之于Webapp),基于OAuth2提供了完整的注册、登录、密码恢复等功能。 它本质是一个Maven Archetype, 所以你可以用它快速生成一个...
同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话…… 还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对...
同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话…… 还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对...