社交登录集成

This commit is contained in:
ylzheng
2015-11-12 21:43:58 +08:00
parent 9a4cb073f5
commit 3815e1f1bb
6 changed files with 56 additions and 14 deletions
+2 -8
View File
@@ -4,7 +4,6 @@
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9040"/>
<capability name="Alignment constraints to the first baseline" minToolsVersion="6.0"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
<capability name="Navigation items with more than one left or right bar item" minToolsVersion="7.0"/>
</dependencies>
<scenes>
<!--个人中心-->
@@ -294,12 +293,7 @@
<tabBarItem key="tabBarItem" title="个人中心" image="UserMale" id="q3u-i6-AFn"/>
<navigationItem key="navigationItem" title="个人中心" id="aqp-9i-WAE">
<barButtonItem key="backBarButtonItem" title="返回" id="z0q-eR-feQ"/>
<rightBarButtonItems>
<barButtonItem image="Settings" id="8hk-iR-75v">
<color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</barButtonItem>
<barButtonItem id="ShJ-Vd-gEK"/>
</rightBarButtonItems>
<barButtonItem key="rightBarButtonItem" id="ShJ-Vd-gEK"/>
</navigationItem>
<nil key="simulatedTopBarMetrics"/>
<connections>
@@ -831,7 +825,7 @@
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="wQd-t8-Eyc" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-7341" y="4769"/>
<point key="canvasLocation" x="-7117" y="5017"/>
</scene>
<!--探索发现-->
<scene sceneID="Krh-MH-97G">
+1
View File
@@ -29,6 +29,7 @@ class GraphsUIViewController: UIViewController, LineChartDelegate {
if (json != nil) {
xlabels00.removeAll()
data00.removeAll()
data01.removeAll()
data02.removeAll()
+28 -1
View File
@@ -15,7 +15,7 @@ import JWT
struct LibrxService {
private static let baseURL = "http://uat.librme.com"
private static let baseURL = "http://123.57.95.237"
private static let defaultThumail = "http://7pn5d3.com1.z0.glb.clouddn.com/9050353.png"
@@ -48,6 +48,7 @@ struct LibrxService {
case UserLikedPosts(userId: Int)
case UserBookMarkPosts(userId: Int)
case UserData(userId: Int)
case Callback
var description: String {
switch self {
@@ -75,6 +76,7 @@ struct LibrxService {
case .UserPosts(let userId): return "/api/v1/users/\(userId)/posts"
case .UserLikedPosts(let userId): return "/api/v1/users/\(userId)/posts/liked"
case .UserBookMarkPosts(let userId): return "/api/v1/users/\(userId)/posts/bookmarked"
case .Callback: return "/api/v1/users/auth/callback"
default: return ""
}
}
@@ -228,6 +230,31 @@ struct LibrxService {
}
static func callbackForSocial(uid: Int, provider: String, access_token: String, refresh_token: String , name: String, avatar: String, response: (user:User?) ->()){
let urlString = baseURL + ResourcePath.Callback.description
let parameters:[String : AnyObject] = [
"uid" : uid,
"provider" : provider,
"access_token" : access_token,
"name": name,
"avatar": avatar
]
let headers:[String: String] = [
"Authorization": "love_libr"
]
Alamofire.request(.POST, urlString, headers:headers, parameters: parameters).response{(_,_,json,_) in
let data = JSON(data: json!)
handleUserInfo(data, response: response)
}
}
static func loginWithEmail(email: String, password: String, response: (user:User?) ->()) {
let urlString = baseURL + ResourcePath.SignIn.description
+23 -3
View File
@@ -78,14 +78,34 @@ class LoginViewController: UIViewController {
UMSocialDataService.defaultDataService().requestSnsInformation(UMShareToSina, completion: {(res:UMSocialResponseEntity!) ->Void in
let data = res.data
print(data)
// let openId:String = data["openid"] as! String!
let name:String = data["screen_name"] as! String!
let avatar:String = data["profile_image_url"] as! String!
let uid:Int = data["uid"] as! Int!
let accessToken:String = data["access_token"] as! String!
//let genderInt:Int = data["gender"] as! Int
//let gender:String = genderInt==1 ? "":""
LibrxService.callbackForSocial(uid, provider: "weibo", access_token: accessToken, refresh_token: "", name: name, avatar: avatar, response: { (user) -> () in
if let _user = user {
self.delegate?.loginViewControllerDidLogin(self)
LocalStore.setAccessToken(_user.token)
LocalStore.setAccessUserId(_user.id)
self.dismissViewControllerAnimated(true, completion: nil)
}else {
self.alert(NSLocalizedString("username or password error", comment: "for login error"))
}
})
})
}
})
}
@IBAction func signupButtonPressed(sender: AnyObject) {
+1 -1
View File
@@ -60,7 +60,7 @@ class LogupViewController: UIViewController {
LocalStore.setAccessUserId(_user.id)
self.dismissViewControllerAnimated(true, completion: nil)
}else {
self.alert(NSLocalizedString("username or password error", comment:"for login error"))
self.alert(NSLocalizedString("登录失败了,请稍候再试", comment:"for login error"))
}
}
+1 -1
View File
@@ -56,7 +56,7 @@ class ProfileViewController: UIViewController{
self.followButton.hidden = true
navigationController?.navigationBar.backgroundColor = UIColor.whiteColor()
navigationController?.navigationBar.tintColor = UIColor.blackColor()
navigationController?.navigationBar.tintColor = UIColor.whiteColor()
navigationController?.navigationBar.backItem?.hidesBackButton = false
self.settingButton.hidden = true